Datei oder Assembly konnte nicht geladen werden. HRESULT: 0x80131515 (Beim Hinzufügen eines Controllers zu einem MVC-Projekt, das Assemblyreferenzen auf dem Netzwerklaufwerk enthält.)

76

Ich habe Folgendes gesehen: VSTS 2010 SGEN: Fehler: Datei oder Assembly konnte nicht geladen werden (Ausnahme von HRESULT: 0x80131515) und keine der Antworten funktioniert. Es erscheint auch nicht, wenn ich baue oder so. Ich kann das Projekt problemlos ausführen. Dies geschieht, wenn ich versuche, einen Controller mit Vorlagen für Entitätsframeworks hinzuzufügen:

Controller-Einstellungen

Dann bekomme ich diesen Fehler:

Fehlermeldung

Alle Projektdateien befinden sich in meiner Netzwerkfreigabe, da sich dort Meine Dokumente für unsere Arbeit befinden. Folgendes habe ich versucht:

1) Schalten Sie die Generator-Serialisierungsbaugruppe in den Projekteinstellungen ein, aus und automatisch.

2) Hinzufügen von sgen.exe.config zu C: \ Programme \ Microsoft SDKs \ Windows \ v7.0A \ bin \ NETFX 4.0 Tools mit dem folgenden Code:

<configuration>
 <runtime>
   <loadFromRemoteSources enabled="true" />
 </runtime>
</configuration>

3) Es wurde versucht, die Assemblys zu entsperren, aber ich hatte keine Option zum Entsperren auf der Registerkarte "Eigenschaften". Keine Entsperroption

Keine dieser Lösungen funktioniert . Hat jemand eine Idee, wie ich das beheben kann ??? Dieser Fehler tritt bei benutzerdefinierten Assemblys aus Nuget oder meinen eigenen Projekten auf, da deren Speicherort im Netzwerkbereich vorhanden ist, jedoch nur, wenn versucht wird, einen Controller mit EF-Vorlagen hinzuzufügen. Ich kann das Programm gut erstellen und ausführen.

SventoryMang
quelle
Von Gewusst wie: Verwenden Sie eine Assembly aus dem Web in Visual Studio „Die Schaltfläche Nicht mehr blocken wird nicht angezeigt , wenn die Montage bereits freigegeben und verfügbar ist.“ Ich vermute, deshalb haben Sie diese Option nicht erhalten. Haben Sie als Randnotiz daran gedacht, Visual Studio neu zu starten?
Conrad Frix
@ ConradFrix Ja, ich habe mehrmals neu gestartet, immer noch keine Würfel = (.
SventoryMang
Versuchen Sie, Ihre <loadFromRemoteSources enabled="true" />zu C: [Visual Studio 2010-Installationsverzeichnis] ​​\ Common7 \ IDE \ devenv.exe.config hinzuzufügen, und prüfen Sie, ob dies hilfreich ist.
Hawkke
@hawkke Ja, Sir, das hat den Trick gemacht! Bitte poste als Antwort, damit ich dir einen Repräsentanten geben kann!
SventoryMang

Antworten:

83

Versuchen Sie , Ihre <loadFromRemoteSources enabled="true" />zu C:\[Visual Studio 2010 Install Dir]\Common7\IDE\devenv.exe.configdirekt unterhalb <runtime>und sehen , ob das hilft :)

Hawkke
quelle
Genau richtig. Ich versuche, Visual Studio 2010-Builds in Parallels auszuführen, während die tatsächliche Quelle auf dem freigegebenen OS X-Laufwerk beibehalten wird, und Unit-Tests wurden ohne diese Änderung nicht ausgeführt. Ich habe auch versucht, sgen.exe.config ohne Glück zu ändern - nur diese Lösung hat funktioniert.
DeckerEgo
Dies löste auch für mich ein Problem beim Laden einer Assembly aus PowerShell v1 mit Import-Module. Vielen Dank!
Camflint
40
Öffnen Sie einfach die Dateieigenschaften im Windows Explorer und klicken Sie auf "Diese Datei entsperren", um das Problem zu lösen. Habe es zumindest für mich getan.
user1151923
Mein Fehler kam von InstallUtil - ich musste <runtime> <loadFromRemoteSources enabled = "true" /> </ runime> zu C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ InstallUtil.exe.config hinzufügen und es hat funktioniert.
Rythos42
@ user1151923 - WOW, das hat tatsächlich funktioniert!
Pavdro
128

Ich musste nur im Dialogfeld mit den Dateieigenschaften im Windows Explorer auf "Blockierung aufheben" klicken.

Aymeric Gaurat-Apelli
quelle
4
War zum Glück eine Stunde lang nicht frustriert, aber diese Win7 "Sicherheitsfunktion" bringt mich immer weiter.
KeithS
Wo diese Eigenschaft gefunden? In Lösungseigenschaften oder wo sonst? Hilfe bitte !
Mesam Mujtaba
1
Klicken Sie im Windows Explorer mit der rechten Maustaste auf die Datei und dann auf Eigenschaften.
Aymeric Gaurat-Apelli
Dies ist das zweite Mal, dass ich 1 Stunde mit diesem Thema
vergeude
OH MANN! Lmao danke, schätze diesen Beitrag, hat mir immens geholfen
Steve Bauman
10

Nur als zusätzliche Lösung hatten wir kürzlich ein Problem wie dieses. Es stellte sich heraus, dass die Lösung die Dateien entsperrte, jedoch mit einer Wendung. Wir haben die Dateien in einer Zip-Datei auf unseren Server kopiert. Als wir die Dateien aus dem Zip-Archiv extrahierten, waren sie bereits blockiert. Wir konnten die Dateien nicht entsperren. Wir haben auf die Schaltfläche zum Entsperren und dann auf OK geklickt, und als wir uns die Eigenschaften angesehen haben, waren sie immer noch blockiert.

Wir mussten alle blockierten Dateien löschen, die Quell-Zip-Datei entsperren und dann die Dateien extrahieren. Zu diesem Zeitpunkt wurden die zuvor blockierten Dateien entsperrt, und die Anwendung lief einwandfrei. Ich hoffe, das hilft jemandem, Frustrationen zu vermeiden.

BEARBEITEN: Ich glaube, Sie müssen auch Windows Explorer als Administrator ausführen, um Dateien entsperren zu können.

BardMorgan
quelle
Dieser Trick hat bei mir funktioniert, ohne Explorer als Adminstrator auszuführen.
Erich Musick
9

Dieses Problem ist darauf zurückzuführen, dass sich einige erforderliche Dateien an einem "nicht vertrauenswürdigen Speicherort" befinden, z. B. im Netzwerk oder an einem freigegebenen Speicherort (auch auf demselben Computer). Wenn sich der Speicherort auf demselben Computer befindet, können Sie die Befehlszeilenoption subst verwenden.

Mbeware
quelle
8

Ich habe in einem anderen Forum zu diesem Problem gesehen, und hier ist die Lösung, die jemand veröffentlicht hat: Gehen Sie in der Eigenschaft des Projekts, das die DLL-Assembly enthält, die nicht geladen werden würde, zur Build-Einstellung und ganz unten, wo "Serialisierung generieren" steht Assembly: ", die Standardeinstellung ist Auto. Stellen Sie das auf Aus. Ihre Lösung sollte dann in Ordnung sein.

Dies passierte mir, als ich die API in einer Webform-Lösung mit mehreren Projekten hatte. Bei einer Einzelprojektlösung MVC funktionierte es einwandfrei.

Yogi
quelle
8

Diese Lösungen haben auch bei mir nicht funktioniert.

In meinem Fall habe ich auf Dateien auf einem zugeordneten Netzlaufwerk zugegriffen. Die Lösung für mich bestand darin, meine Netzwerk-IP-Adresse wie folgt als vertrauenswürdiges Laufwerk hinzuzufügen:

  1. Schalttafel
  2. Netzwerk-und Freigabecenter
  3. Internetoptionen (unten links im Fenster)
  4. Registerkarte "Sicherheit"
  5. Wählen Sie "Lokales Intranet"
  6. Klicken Sie auf die Schaltfläche "Sites"
  7. Klicken Sie auf "Erweitert"
  8. Fügen Sie der Zone die IP Ihres Netzlaufwerks hinzu.

Ich bin mir nicht sicher, warum dies bei allen anderen Optionen funktioniert hat, aber das hat das Problem für mich gelöst. Alle Projekte und Lösungen werden jetzt ohne Probleme erstellt.

brendo234
quelle
2
Letzte Antwort hier, aber dies ist die einzige, die für mich funktioniert hat.
Ankit
1
Vielen Dank, Sir - Sie sind ein Gentleman und ein Gelehrter. Das ist genau das. Ich verwende VirtualBox und mein Projekt befindet sich in einem freigegebenen Ordner, den Windows als Netzwerklaufwerk ansieht.
dadude999
1
Ich verwende Hyper-V und lade mein Projekt über die Netzwerkfreigabe - dies war die einzige Lösung, die für mich funktioniert hat.
131nary
1
Richtige Antwort auch für mich. Auf einem Mac starte ich Visual Studio in einer virtuellen VMWare-Maschine und meine Projektdateien werden als Netzwerklaufwerk zugeordnet. Durch Hinzufügen vmware-hostzur Zone wurde das Problem behoben.
Baptiste
2
  1. Ich musste nur im Dialogfeld mit den Dateieigenschaften auf "Blockierung aufheben" klicken.

  2. Bitte überprüfen Sie, ob Ihre Datei schreibgeschützt ist, deaktivieren Sie sie und führen Sie den ersten Schritt aus (bevor Sie weitere Zeit damit verschwenden :))

Avulosunda
quelle
(+1) Abgesehen von der Ausführung als Administrator sollte dies das erste sein, was jemand überprüfen sollte, bevor er mit Berechtigungen fortfährt. und stellen Sie sicher, dass Sie alles entsperren, was mit Ihren Diensten zusammenhängt (alles, was kein Dialogfeld für Zugriffsberechtigungen automatisch öffnet, schlägt fehl, wenn die Berechtigung nicht erteilt wird. Beispielsweise werden Windows-Apps den Benutzer automatisch auffordern, Zugriff zu gewähren, Dienste jedoch 't).
Bizhan
1

Die anderen Antworten hier haben mir geholfen, dieses Problem in PowerShell herauszufinden. Ausführen Unblock-File <filename>, damit das ausgeführte Skript auf das Skript zugreifen kann.

Andacious
quelle
0

Versuchen Sie, den Desbloquer der Datei zu entsperren .

Dies löste mein Problem.

Gerardo Ramirez Riofrio
quelle