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
Referenz: https://learn.microsoft.com/en-us/nuget ... Management
Edit 1:
Die Fehlermeldungen lauten wie folgt:
/home/.nuget/packages/xunit.v3.core/3.1.0/_content/DefaultRunnerReporters.cs(3,20):
Fehler CS0400: Der Typ- oder Namespacename „Xunit“ konnte im globalen Namespace nicht gefunden werden (fehlt Ihnen ein Assemblyverweis?)
Ich habe ChatGPT gefragt 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 lügt.
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.
Mobile version