Hierarchisches Directory.Packages.props mit GlobalPackageReference wird für Tests nicht aufgelöstC#

Ein Treffpunkt für C#-Programmierer
Anonymous
 Hierarchisches Directory.Packages.props mit GlobalPackageReference wird für Tests nicht aufgelöst

Post by Anonymous »

Ich habe die folgende Projektstruktur (das vollständige Repo finden Sie unter https://github.com/asarkar/Functional-csharp-buonanno)

Code: Select all

root
├── Directory.Packages.props
├── src
│   └── Proj1
│       └── Proj1.csproj
└── tests
├── Directory.Packages.props
└── Proj1.Tests
├── Proj1.Tests.csproj
└── Proj1Tests.cs
root/Directory.Packages.props

Code: Select all


true


root/tests/Directory.Packages.props

Code: Select all











Proj1.Tests.csproj:

Code: Select all







Aber wenn ich dotnet build/test ausführe, erhalte ich die folgende Fehlermeldung. Warum?
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

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post