我的.NET核心6项目的.csproj有以下内容:
<ItemGroup>
<PackageReference Include="Foo" Version="1.2.3" />
<PackageReference Include="Bar" Version="4.5.6" />
</ItemGroup>如何以编程方式(在运行时)确定项目引用"Foo“和"Bar”nuget包,并确定它们的版本?
我试过,但没有成功:
Assembly.GetExecutingAssembly().GetReferencedAssemblies()Assembly.GetEntryAssembly().GetReferencedAssemblies()AppDomain.CurrentDomain.GetAssemblies()(我对NuGet.CommandLine包特别感兴趣,以防有任何不同。)
更新
我认为问题在于NuGet.CommandLine包。我不认为它被加载到应用程序域了。我怎么能察觉到呢?
发布于 2022-08-22 06:56:01
我怀疑问题在于包的NuGet.CommandLine.nuspec有以下内容:
<developmentDependency>true</developmentDependency>从这里开始来了。
因此,它不包括在运行时依赖项中,因此没有复制到bin/Debug/net6.0目录,因此在应用程序启动时没有加载到AppDomain中。
https://stackoverflow.com/questions/73439970
复制相似问题