webentwicklung-frage-antwort-db.com.de

DLLs werden nicht in GAC bereitgestellt - SharePoint 2013, Visual Studio 2012, .NET FW 4.5

Wenn ich ein einfaches SharePoint 2013-Projekt in Visual Studio 2012 erstelle und bereitstellen möchte, wird es ordnungsgemäß bereitgestellt, aber DLL befindet sich nicht im globalen Assemblycache. Auf der Registerkarte "Erweitert" habe ich das Projekt Assembly hinzugefügt, das bereitgestellt werden soll.

enter image description here

In verschiedenen Tests habe ich Assembly Deployment Target Option auf GlobalAssemblyCache gesetzt und Assembly in Package aufnehmen to True und entfernt DLL aus dem im ersten Szenario beschriebenen Paket.

enter image description here

Project .NET FW-Version ist 4.5. Die Maschine ist eine virtuelle Maschine mit 64 Bit, Windows Server 2008. Ich habe auch versucht, das Plattformziel des Projekts auf X64 und Any CPU zu ändern, ohne dabei etwas zu erreichen.

Ich habe versucht, DLL manuell mit dem Gacutil-Tool hinzuzufügen, und es wird auch nicht bereitgestellt. Könnte es etwas mit dem 4.5-Framework zu tun haben? Ich kann auch keine in 4.5 erstellten DLLs manuell bereitstellen, aber alle anderen arbeiten.

Irgendwelche Ideen? Vielen Dank.

16
gradosevic

Ich überprüfe es in c:\windows\Assembly, es sollte dort sein, oder?

Nein, das ist das Verzeichnis für die GAC in .NET-Versionen 1.0 bis 3.5. Es wurde in .NET 4.0 und höher verschoben und befindet sich jetzt unter c:\windows\Microsoft.net\Assembly. Sie können dieses Verzeichnis mit Explorer durchsuchen, der Shell-Erweiterungshandler, der die Ansicht der GAC-Verzeichnisse reduziert hat, wird nicht mehr verwendet. Wenn die Assembly keinen nicht verwalteten Code enthält und dann im Verzeichnis GAC_MSIL gestartet wird, haben Sie wenige Probleme, die tatsächliche Datei von dort aus zu finden.

36
Hans Passant

Ich hatte dieses Problem, und ich glaube, ein IISReset hat es behoben. 

Ich habe Änderungen an meinem Ereignisempfänger vorgenommen. Im Paket habe ich die Assembly aus Project-Ausgabe wie Sie hinzugefügt. Ich habe die "Include Assembly in Package" in den Projekteigenschaften auf "False" gesetzt.

Ich wurde implementiert, aber die Änderungen an meinem Ereignisempfänger sahen nicht so aus, als ob sie stattgefunden hätten.

Ich habe ein IIS Reset ausgeführt und konnte dann meine Änderungen sehen. 

0
user3760332