Ich habe ein seltsames Problem mit VS2010. Wir verwenden TFS, um unsere API-DLLs zu erstellen, und wir haben sie in unseren Projekten verwendet, um ein zugeordnetes Netzwerklaufwerk zu verwenden, das vollständig vertrauenswürdig war. Wir arbeiten seit mindestens zwei Jahren so und alles hat perfekt funktioniert.
Heute habe ich eine Webanwendung auf vs2010 konvertiert und wenn ich sie in Release kompiliere, gibt es mir:
SGEN: Fehler: Datei oder Assembly 'file: /// L: \ Api \ Release API_20100521.1 \ Release \ CS.API.Exceptions.dll' oder eine ihrer Abhängigkeiten konnte nicht geladen werden. Der Betrieb wird nicht unterstützt. (Ausnahme von HRESULT: 0x80131515)
Das Seltsame ist, dass es funktioniert, wenn es sich unter dem Debug-Profil befindet ...
Ich habe versucht, das hinzuzufügen
<runtime>
<loadFromRemoteSources enabled="true" />
</runtime>
in app.config und immer noch kein Glück (Siehe http://social.msdn.microsoft.com/Forums/en/msbuild/thread/d12f6301-85bf-4b9e-8e34-a06398a60df0 und http://msdn.microsoft.com/ de-de / library / dd409252 (VS.100) .aspx )
Ich bin mir ziemlich sicher, dass dieses Problem von Visual Studio oder msbuild stammt, da unser Code in prod nicht von einer Netzwerkfreigabe ausgeführt wird, da alle referenzierten DLLs in den Ordner bin kopiert werden.
Wenn jemand eine Lösung hat (oder nur eine Idee für einen Suchpfad), lass es mich wissen!
Bearbeiten: Es stellte sich heraus, dass es im Debug-Modus funktionierte, da die Generierung von Serialisierungsassemblys deaktiviert war. Wie der Titel schon sagt, handelt es sich wirklich um ein SGEN-Problem, da dieses Dienstprogramm besagt, dass der Pfad nicht vertrauenswürdig ist ...
Ich hatte gerade das gleiche / ähnliche Problem auf einem TFS-Build-Server, auf dem ein Build auf DLLs von einer Netzwerkfreigabe verwies.
Das Problem besteht darin, dass sich das Sicherheitsrichtlinienmodell von CLR v4 seit früheren Versionen geändert hat und keine Sandbox-Assemblys wie zuvor sind.
Um Ihr Problem zu beheben, suchen Sie einfach den Speicherort von sgen.exe und erstellen Sie eine sgen.exe.config im selben Ordner mit folgenden Inhalten:
sgen.exe ist normalerweise bei
In diesem Blogpost können Sie einige Änderungen an CAS-Richtlinien in .NET 4.0 nachlesen: Link
quelle
Hatte das gleiche Problem und die Konfigurationsänderung hat nicht funktioniert. Nur wenn ich Generate Serialization Assembly in den Projekteigenschaften deaktiviert habe, hat es funktioniert.
quelle
Ich hatte den gleichen Fehler und stellte fest, dass meine DLL "blockiert" war. Öffnen Sie die DLL im Explorer, klicken Sie mit der rechten Maustaste -> Eigenschaften -> und klicken Sie auf "Entsperren".
http://cantgrokwontgrok.blogspot.com/2009/10/visual-studio-unknown-build-error.html
quelle
Ich hatte genau das gleiche Problem und habe es behoben, indem ich die Datei sgen.exe.config unter C: \ Programme (x86) \ Microsoft SDKs \ Windows \ v7.0A \ Bin \ NETFX 4.0 Tools hinzugefügt habe
mit dieser einfachen Konfiguration, wie andere gesagt haben
quelle
Für diejenigen unter Ihnen, die eine 64-Bit-Version des TFS-Builddienstes ausführen, musste ich die Konfigurationsdatei unter folgendem Pfad erstellen:
Und der Dateiinhalt:
quelle
Ich hatte das gleiche Problem, lud die Baugruppe in den GAC und arbeitete
quelle
Das Hinzufügen des folgenden Snippets zur Datei app.config hat in meinem Fall funktioniert. Ich verwende Windows XP mit VS2010 Service Pack 1.
quelle
Genau wie zu Ihrer Information, wenn Sie Windows 7 ausführen, finden Sie die Datei sgen.exe unter:
C: \ Programme (x86) \ Microsoft SDKs \ Windows \ v7.0A \ Bin \ NETFX 4.0 Tools
Ich musste eine sgen.exe.config erstellen und dort platzieren, und dann verschwand dieses Problem.
quelle
Weder das
unblock
noch dasconfig
hat für mich funktioniert. Was der Trick für mich war, war dieser Tippcaspol
. Ich rannteUnd ich war bereit zu gehen, nicht einmal ein VisualStudio-Neustart erforderlich.
quelle
Ich habe ein ähnliches Problem und bin schließlich damit fertig geworden, indem ich die Datei licenses.licx im Ordner Properties der Lösung entfernt habe.
quelle
Nur für den Fall wie ich war Unblock keine Lösung, da Unblock nicht in den Eigenschaften meiner DLL-Datei angezeigt wird. Habe nachgesehen und meine Lösungsdatei geschlossen und mit der lokalen C: -Kopie anstelle des UNC-Netzwerkpfads zur Projekt-SLN-Datei erneut geöffnet. Konnte nach dieser Route veröffentlichen.
quelle
In meinem Fall wurden einige DLLs blockiert.
Um alle Dateien im Ordner zu entsperren, habe ich die Power Shell mit dem folgenden Befehl verwendet
quelle