it-swarm.com.de

Visual Studio lädt keine Projektreferenzen

Ich habe eine Visual Studio (Community 2013) -Lösung mit vielen C # -Projekten auf meinem PC und habe gerade ein Upgrade von 7 auf Windows 10 durchgeführt. Das Projekt verwendet das .NET Framework 4.0-Clientprofil. Auf win7 hat alles gut funktioniert, aber jetzt scheint eines der Projekte keine Referenzen zu laden. In der Nähe der referenzierten Elemente befinden sich gelbe Dreiecke. Dies sind keine Elemente, auf die von derselben Lösung verwiesen wird (System und von NuGet heruntergeladene Referenzen werden daher nicht geladen).

 references...

Das Ressourcen ist ein weiteres Projekt in der Lösung, die anderen nicht. Wenn ich die Registerkarte Eigenschaften für eine Systemreferenz öffne, ist das Feld Path leer, und daher ist das Feld ResolvedFalse ...

 empty path

Außerdem scheint in der .csproj-Datei alles in Ordnung zu sein, es gibt <HintPath>-Knoten, die benötigt werden, mit relativen (oder absoluten, wenn sich die Referenz auf einem anderen Laufwerk befindet) und korrekten, vorhandenen Pfaden.
Eine andere seltsame Sache: Im Objektbrowser werden alle Referenzen (scheinbar) geladen:

 Object Browser seems to be ok

Also was soll ich tun:

  • erstellen Sie die Projektdatei neu (indem Sie ein neues Projekt erstellen und alle Dateien und Referenzen erneut hinzufügen).
  • etwas an der Konfiguration des Projekts ändern;
  • verwenden Sie eine neuere Version von .Net.
  • ändere etwas an der Konfiguration von VS;
  • einen anderen VS verwenden (zB Community 2015) oder den aktuellen neu installieren?
12
nvi9

Ich hatte auch dieses Problem und es dauerte einige Zeit, um es herauszufinden. Das Problem ist, dass NuGet geändert hat, wie die Pakete wiederhergestellt werden. Der "alte Weg" benötigte den Ordner ".nuget" mit 3 Dateien (nuget.config, nuget.exe, nuget.targets) und einigen Einstellungen in der Projektdatei wie:

<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
  <PropertyGroup>
      <ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them.  For more information, see http://go.Microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
  </PropertyGroup>
  <Error Condition="!Exists('$(SolutionDir)\.nuget\NuGet.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\.nuget\NuGet.targets'))" />
</Target>

Dadurch wurde das Projekt abgebrochen.

Um dies zu beheben , kopieren Sie das fehlende Verzeichnis in das Projekt (holen Sie es sich mit einer älteren Version von Visual Studio/NuGet oder von einem Mitarbeiter, der es hat) oder löschen Sie einfach den oben genannten Teil aus der Projektdatei .

Entfernen Sie für optimale Ergebnisse auch:

<RestorePackages>true</RestorePackages> 

und

<Import Project="$(SolutionDir)\.nuget\nuget.targets" />

aus der Projektdatei!


Mehr zum Thema finden Sie hier:

http://blog.davidebbo.com/2014/01/the-right-way-to-restore-nuget-packages.html

http://docs.nuget.org/consume/package-restore/migrating-to-automatic-package-restore

https://docs.Microsoft.com/en-us/visualstudio/ide/troubleshooter-broken-references

10
Uszkai Gyula

Das Hauptproblem ist die FRAMEWORK-Referenz.

Laden Sie Ihr Projekt in VS und ändern Sie es auf Ihrer Seite PROJECT PROPERTIES (TARGET FRAMEWORK), indem Sie ein Upgrade auf .NET 4.x (nicht Client) oder .NET 4.5 durchführen

1
David BS

Stellen Sie sicher, dass beide Projekte auf dieselbe Framework-Version abzielen. Zum Beispiel: Einer mit dem Zielframework .Net Framework 4.5.1 funktioniert nicht mit 4.5

0
bgS