问题标签 [packagereference]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2547 浏览

c# - 无法在 MSTest 项目中加载文件或程序集“Microsoft.Extensions.Configuration.Abstractions,Version=3.1.0.0”

我在使用 MSTest 时遇到问题,这里是问题

  • 打开VS2019
  • 确保包管理设置为 [PackageReference]
  • 创建一个 .Net Framework 测试项目
  • 添加 Nuget 包 Microsoft.Extentions.Configuration 最新版本 (3.1.3.0)
  • 添加下面的代码
  • 运行测试
  • ==> 测试失败并出现错误 [无法加载文件或程序集 Microsoft.Extensions.Configuration.Abstractions, Version=3.1.0.0 ...] 错误

PS:使用 package.config 而不是 PackageReference 解决了这个问题。降级到 Microsoft.Extentions.Configuration 到 3.1.0.0 也解决了这个问题

这里有什么问题?

谢谢

0 投票
1 回答
528 浏览

.net - NuGet - 如何在消费应用程序构建输出中包含应用程序 app.config 文件?

如何让我的 NuGet 包将其 app.config 包含在使用 NuGet 包的项目的构建输出目录中?目前它只是复制 NuGetConfigInclude.exe 但我需要它也有 NuGetConfigInclude.exe.config 文件。请注意,消费应用程序使用 .csproj 文件中的 PackageReference。它不使用 packages.config。

NuGetConfigInclude.nuspec:

使用应用程序项目文件:

更新:

我已经设法让 nuspec 将文件包含在包中,但是在使用项目中它正在尝试编译配置文件:

构建消费项目时的示例错误:

严重性代码描述项目文件行抑制状态错误 CS1022 类型或命名空间定义,或预期的文件结尾 NuGetConsumer C:\Users\GuestAcct.nuget\packages\nugetconfiginclude\24.0.0\contentFiles\any\any\assets\NuGetConfigInclude。 exe.config 1 活动

0 投票
0 回答
184 浏览

c# - 将项目加载到工作区时,Roslyn 是否仅加载对项目的元数据引用?

我在上面尝试了这段代码来获取所有外部引用,但它不包括引用的包和程序集。它仅显示项目引用。例如对于具有许多引用类型的项目:

我的代码无法获取引用的包,它仅获取引用的项目,在此示例中它将是项目 Test。您能否提供任何建议以获取引用的包和程序集。

0 投票
0 回答
312 浏览

c# - 通过 csproj 文件中的 PackageReference 更新 nuget 包

我有一个用 C# 编写的项目,其中包含一些自定义 NuGet 包依赖项。我想在本地 repo 中安装任何软件包的最新版本.nuget/packages。如何自动将我的依赖项更新到最新版本?我应该检查我的本地仓库并在构建过程中找到每个包的最新版本吗?我试图做这样的事情:Version="*",但它不适合我。

0 投票
0 回答
253 浏览

msbuild - msbuild 警告 - MSB3246 & NETSDK1049

我正在为多个 csproj 文件从 packages.config 迁移到 PackageReference 格式。恢复和构建成功,但有数百个警告。在我的 PackageReference 更改 csproj 文件之前,这些警告没有显示。如果您能指导解决这些问题,请告诉我。

警告 NETSDK1049:

警告 MSB3246:

0 投票
1 回答
349 浏览

visual-studio - PackageReference 版本被忽略

在我们的项目中,我们为不同的分支创建不同的 NuGet 包(使用后缀)。在 .csproj 文件中,我试图指定应该使用的包的特定版本。包名称可以是1.2.31.2.3-rc0011.2.3-pr001

第一个问题:
<PackageReference Include="Package.Name" Version="[1.2.3,1.2.6)" />在没有 1.2.3 的地方进行了测试。我的理解是它应该使用下一个可用版本,但现在它只是说选择的包是 1.2.3,带有"Not available in this source"。更新 NuGet 也会忽略这一点,而只是更新到最新版本 1.2.10。之后,它会覆盖 .csproj 中的版本,因此会丢失指定的边界。

第二个问题,属于第一个问题,是指定仅使用 -pr* 或 -rc* 版本。1.2.*-pr*不是一个有效的选项,所以也许我们的编号方案需要改变。

0 投票
1 回答
119 浏览

c# - 为什么有些 NuGet 包 dll 被复制到解决方案的输出目录而有些没有?

我有一个包含两个项目的解决方案,项目 A 和项目 B。项目 A 是启动项目并引用项目 B。项目 B 有一些 NuGet 包,包括 EMGU.CV 和 MaterialDesignThemes。EMGU.CV 将其 dll 复制到项目 A 的输出目录,但 MaterialDesignThemes 没有。我要么必须手动复制 dll,要么将 NuGet 包添加到项目 A。有没有办法让所有 NuGet 包将自己复制到启动项目的输出目录?

不确定这是否相关,但我的 NuGet 包管理使用的是 PackageReference,而不是 nuget.config。我正在使用 VS 2019。

0 投票
0 回答
971 浏览

nuget - NuGet 使用 NuGetCommand@2 Azure Pipeline 任务还原 package.config 和 PackageReference

我目前正在使用 Azure 管道中的 YAML 管道,但遇到了障碍。我已经有一个解决方法;但是,我很好奇是否有人遇到过这个问题并妥善解决。这是问题所在。

我有一个包含多个解决方案的项目。一些解决方案正在使用 package.config,而其他解决方案正在使用 PackageReference。在我们使用以下任务对项目中的解决方案执行 nuget 恢复之前,这并不是什么大问题。

上述任务成功检测到现有的 NuGet 安装,如果没有,则安装最新版本的 NuGet。然后它使用 PackageReference 对所有包执行 nuget 还原。这就是摩擦发挥作用的地方。此任务会跳过任何使用 package.config 的解决方案,因为它默认为 PackageReference 解决方案。为了解决这个问题,我们添加了一个额外的 NuGet 命令任务,我们指向我们存储库中的本地 nuget.config 文件。

注意:第一个任务使用在我们的管道代理上配置的系统默认 nuget.config 文件。

虽然这不会为您的构建增加大量时间,但它仍然不理想,因为使用单个任务会很好。任何帮助将不胜感激。

谢谢,源代码

0 投票
1 回答
82 浏览

c# - 使用 PackageReference 时如何控制安装的依赖版本

我有一个C#项目使用PackageReference来使用 NuGet 管理依赖项。我可以毫无问题地使用 NuGet 管理器安装顶级包。但是,我正在寻找一种方法来强制 Nuget 安装其中一个依赖项的特定版本。

例如,我有一个名为MainProject.Data.. 在这个项目中,我安装了一个名为XYZ.Main. 但是,XYZ.Main包已XYZ.Secondary >= 2.1.0列为依赖项。我想要一种能够强制安装 Nuget 的方法XYZ.Secondary 2.1.5,而不是最新的XYZ.Secondary 2.1.25

如何控制要安装的依赖项?

0 投票
1 回答
320 浏览

c# - 加载csproj元素中的属性“ExcludeAssets”无法识别

使用 Microsoft.Build 组件使用 ProjectCollection.GlobalProjectCollection.LoadProject 方法加载 csproj。文档在这里

在其中一个引用中加载具有 PackageReference 和 ExcludeAsset 属性的 csproj,例如:

抛出以下异常:

元素中的属性“ExcludeAssets”无法识别。

已经尝试过不同的 ToolVersions (2.0 | 4.0 |12.0),并且这两个项目都是在 .net472 中编译的

我怎样才能解决这个问题?

谢谢