2017-11-30 2 views
0

Ich bin mir bewusst, dass es bereits eine Frage here fragt genau die gleiche Fehlermeldung, aber leider die angenommene Antwort nicht funktioniert mich.MSBuild Fehler: "Konnte diesen Verweis nicht auflösen. Konnte die Assembly nicht finden ..."

konnte ich meine aktuelle Lösung erfolgreich heute Morgen bauen, aber der Bau begann plötzlich vor ~ 15 Minuten versagt, mit der folgenden Fehlermeldung:

C:\Program Files (x86)\MSBuild\14.0\bin\Microsoft.Common.CurrentVersion.targets(1820,5): warning MSB3245: Could not resolve this reference. Could not locate the assembly "MyAssembly.dll". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors.

für mich Leider wird diese DLL erforderlich durch mein Code. Da es nicht gefunden werden kann, wird meine Lösung nicht kompiliert.

Ich habe versucht, zu reinigen und dann meine Lösung wieder aufzubauen, aber das war nutzlos.

Ich bemerkte, dass es ein gelbes Symbol neben dieser Referenz gab, also entfernte ich die Referenz und fügte sie dann erneut an genau der gleichen Stelle ein, die im <HintPath>-Tag in meiner .csproj-Datei angegeben war. (Der Speicherort war der Ordner \bin\Debug.) Das gelbe Symbol verschwand dann.

jedoch sofort, nachdem ich auf „Build-Lösung“ angeklickt (in Debug-Modus), erscheint das gelbe Symbol wieder, und wieder sah ich die gleiche Nachricht MSBuild Fehler, mich zu informieren, dass die DLL nicht gefunden werden konnte.

Wie kann ich dieses Problem beheben?

+0

Ist 'MyAssembly.dll' eine Assembly in Ihrer Lösung? –

+0

@WaiHaLee Ja, ist es. –

Antwort

1

Fügen Sie dem Projekt MyAssembly eine Projektreferenz hinzu, keine Referenz auf die kompilierte Ausgabe. Rechtsklick auf den Knoten Verweise des Projekts, das MyAssembly.dll muss, gehen Sie auf „Add Reference“, wählen Sie dann „Lösung“:

Solution reference


Angenommen, Sie haben zwei Projekte (X und Y) mit Y abhängig von X. Visual Studio X zuerst bauen, dann Y.

Sie einen Verweis auf X in Y in einem von zwei Arten hinzufügen:

  • Referenz des Projekt in dem Sol ution
  • Referenz der kompilierte Ausgabe im \bin\Debug Ordner

Wenn die Referenz in der Lösung für das Projekt ist, dann wird Visual Studio wissen, welche zu kompilieren Ihre Projekte (X, Y in unserem Beispiel).

Wenn der Verweis auf die Ausgabe in \bin\Debug ist, wird Visual Studio nicht wissen, welche Reihenfolge die Assemblys kompilieren, und könnte versuchen, Y vor X zu kompilieren, die Datei in \bin\Debug nicht finden und nicht kompilieren.

Verwandte Themen