Code: Select all
root
├── Directory.Packages.props
├── src
│ └── Proj1
│ └── Proj1.csproj
└── tests
├── Directory.Packages.props
└── Proj1.Tests
├── Proj1.Tests.csproj
└── Proj1Tests.cs
Code: Select all
true
Code: Select all
Code: Select all
Als Referenz verwende ich .NET 9.
/home/.nuget/packages/xunit.v3.core/3.1.0/_content/DefaultRunnerReporters.cs(3,20):
Fehler CS0400: Der Typ- oder Namespace-Name „Xunit“ konnte nicht gefunden werden in
der globale Namespace (fehlt Ihnen eine Assembly-Referenz?)
Ich fragte ChatGPT und es hieß:
xUnit v3 (die neue Hauptversion) hat die Art und Weise geändert, wie seine Assemblys strukturiert sind. GlobalPackageReference stellt das Paket wieder her, verweist jedoch nicht automatisch auf die Assemblys im Projekt. Mit anderen Worten: Der Compiler sieht den NuGet-Paketordner, aber Ihr Projekt verweist nicht wirklich auf die xunit.core-Assembly – daher schlägt die Verwendung von aus dem Paket. v3 trennt Pakete (xunit.core, xunit.abstractions, xunit.runner.visualstudio) und verbindet Referenzen nicht automatisch, auch nicht unter CPM.
Es empfiehlt sich eine Lösung, wie ich selbst durch Versuch und Irrtum herausgefunden habe. Ich weiß nicht genug über .NET, um beurteilen zu können, ob ChatGPT die Wahrheit sagt oder nicht.
Die Verwendung von PackageVersion in Tests/Directory.Packages.props (mit Version) und PackageReference in Tests/Directory.Build.props (ohne Version) scheint zu funktionieren, aber dafür müssen die Pakete immer noch zweimal aufgelistet werden.
Referenz: https://learn.microsoft.com/en-us/nuget ... Management
Mobile version