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 Repo ist 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 Proj1Tests.cs kann Xunit nicht finden. Warum?
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.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post