问题标签 [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 投票
0 回答
42 浏览

msbuild - PackageReference 不引用库

当我尝试将包引用添加到 .csproj 文件时,我遇到了项目中未引用实际 DLL 的问题。我的例子是:

该包出现在 Nuget 包管理器中,但不在项目的“参考”列表中,并且无法从项目中访问该程序集。

我正在使用 Visual Studio 15.7.4

谢谢

0 投票
2 回答
440 浏览

msbuild - 是否可以将 OctoPack 与新的 PackageReference NuGet 格式一起使用?

我们最近升级了我们的程序集以使用该PackageReference格式而不是packages.config我们的 NuGet 依赖项。执行此操作后,其中一个包 ,OctoPack停止工作。有什么方法可以OctoPack在仍然使用该PackageReference格式的同时开始工作吗?

0 投票
1 回答
670 浏览

.net - .Net Framework+Standard+Core 组合时使用 PackageReferences 管理 nuget 包

问题:

如何在VisualStudio2017具有 3 个平台的解决方案中管理 nuget 包:

  • .Net 标准 1.3
  • .Net 框架 4.6
  • .Net 核心 1.0

?

我喜欢这种PackageReference方法,但我不知道如何使用它。他们谈论:

  • 这是否意味着通常我需要为每个框架/标准/核心至少 3 个PackageReferences ?
  • 当我们陷入困境时如何管理版本.Net Framework 4.6
  • 由于nuget版本兼容性问题,当我无法运行.net core引用 lib 的控制台应用程序时,我也遇到了这个问题。.net standard

另外,我想提一下,我遇到了几篇文章,说.csprojs 回来了,不需要.xproj, project.json。就个人而言,我喜欢这个想法来处理.csprojs 像以前一样。


语境:

我不是以英语为母语的人,而且我对非平凡的 nuget 用法和.Net Core/Standard开发非常陌生。

我正准备将应用程序移植.Net Framework.Net Framework++ 。这现在只是一个WPF应用程序。但在未来它打算保持相同的WPF应用程序,但也有一个新的分支,从现有的逻辑提出。我不确切知道可能的新分支的计划是什么。最有可能的计划是创建一个网站。我可以肯定的是,任务是保持逻辑运行(使用WPF UI)并将其实现为.StandardCore.Net Core.Net CoreASP.Net Core.Net Framework.Net Core

我决定使用Framework++的Standard组合Core作为解决方案,因为它很简单。我的意思是这个概念很容易理解:两个分支(FWKCore )使用的基类( standard)。代码中不需要多目标或指令(条件编译)。暗示应该通过复制粘贴和修改从头开始创建新的解决方案。仍然不能 100% 确定这个决定的合理性。

但是问题意味着要采取这种方法:Framework++ 。StandardCore


我希望这个问题是合理的;我的意思是,在这种情况下有效管理 nuget 包是成功跨平台项目的良好开端。谢谢!

0 投票
2 回答
4042 浏览

msbuild - 无法将“MSBuild.ILMerge.Task”与 PackageReference 一起使用

使用MSBuild.ILMerge.Task通过packagereference以下错误引用时出现:

这是因为 MSBuild.ILMerge.Task.dll 在其包位置找不到 ILMerge 可执行文件。我猜这主要的原因可能是 package.config 和 PackageReference 之间的文件夹结构不同。

其他人遇到过这个问题吗?提前感谢任何帮助

0 投票
1 回答
147 浏览

msbuild - PackageReference 将版本逻辑解析为 API

是否有任何可通过 MSBuild 任务、目标或其他方式访问的 API,允许我查询给定 PackageReference 将解析(或已经解析)到哪个版本的 NuGet 包?

例如,如果我有一个 csproj

我有一个我想要的自定义目标

0 投票
2 回答
9129 浏览

.net - NuGet 包显示没有依赖项?

我尝试从 .NET 4.7.2 类库 (VS2017) 制作 NuGet 包,但生成的 NuGet 包出人意料地显示没有依赖项(这是一个错误)。

我的设置是这样的:

  • 我的类库是 .NET Framework 4.7.2
  • 我的类库使用另一个NuGet 包(具有依赖项)。
  • 我的类库在 .csproj 中使用packageReferences
  • 我的类库包含一个正确的 .nuspec 文件
  • 我使用nuget.exe 包来创建包

nuget.exe pack命令应自动填充所需的依赖项 - 这也曾经是早期的情况(在另一个项目中)。但是,当时我在类库中使用了packages.config而不是packageReferences。这有什么改变吗?

到底是怎么回事?

如何强制系统再次在我的包中包含所需的依赖项?

笔记:

  • 该包由我们的 TeamCity 构建服务器上的 MSBuild 脚本构建(没有 VS2017)。它是调用“nuget.exe restore”和后来 的“nuget.exe pack”作为其构建逻辑的一部分的构建脚本。

  • MSBuild 是 15.7 版

  • nuget.exe 是版本 4.6.2

0 投票
2 回答
4414 浏览

msbuild - 禁用特定 MsBuild 项目的传递 PackageReference 依赖项

我正在将旧式 MsBuild csproj 项目迁移到使用 PackageReference 格式,并且遇到了传递依赖的问题。

请考虑以下项目 A 引用 NuGet 包 B 和 C,每个都包含一个使用 PackageReference 的程序集。在构建项目 A 使用 IL 合并将 B 作为公共符号合并到 A 程序集中,并将 C 作为内部化符号。项目 D 有一个对 A 的项目引用。

传递依赖案例 D 引用 A、B 和 C。在构建 D 时,出现类型错误 CS0433 的编译错误:在“A”和“B”中都存在类型“X”。

有没有办法强制 D 在上面的场景中不添加对 B 或 C 的显式引用?

0 投票
2 回答
1909 浏览

.net - Nuget:将多个大型解决方案迁移到 PackageReference

背景

我正在从事一个具有多个大型解决方案的大型项目。总而言之,我们有超过 400 个 C# 项目。过去,我们将 Nuget 与packages.config文件一起用于我们的依赖项。现在我们要将所有项目迁移到新PackageReference格式。

问题

我知道 Visual Studio 提供了一种将单个项目从格式迁移packages.config到该PackageReference格式的解决方案,但我不知道有一种解决方案可以一次迁移多个 Visual Studio 解决方案。我不需要 Visual Studio 的兼容性检查,因为所有使用的包都与新格式兼容。

问题

有没有一种方便的方法可以一次将多个 Visual Studio 解决方案从格式迁移packages.config到该PackageReference格式?

0 投票
1 回答
4977 浏览

azure-devops - PackageReference 版本控制通配符 csproj

我的 NetStandard 项目中有以下内容

当我将其更改为使用通配符(而不是 1.0.1)时,我在依赖项切换上得到一个感叹号,然后是 NuGet 切换,当然还有包本身。

当我签入时,CI 构建在另一端也失败了,给了我

找不到包 MyReference。源中不存在具有此 ID 的包:Microsoft Visual Studio 脱机包,nuget.org

使用没有通配符的实际版本(1.0.1)时,上述所有问题都消失了,但我想确保 .NET Core 恢复任务始终恢复到最新的包,我希望一个简单的通配符就可以做到.

注意 - 我正在使用我自己的私有 NuGet 存储库(包管理扩展)

请指教。

为什么在 CI 构建过程中使用通配符会失败,表明它找不到包?

因此,假设我已将 project1 部署到我自己的 NuGet 存储库。Project2 对 Project1 具有依赖关系,该依赖关系已作为 NuGet 包添加到 Project2。Project1 包驻留在我自己的存储库中,没有问题也没有错误。

当我使用通配符并在本地构建时,它可以工作并恢复最新版本。当我签入代码更改时(在 .csproj 中保留通配符)- CI 构建失败并显示上述错误消息。

0 投票
1 回答
376 浏览

msbuild - 统一的主要参考

我在让我的项目在服务器上构建时遇到问题。相同的项目在我的机器上本地构建良好(VS 2017 15.8)。Teamcity 服务器也msbuild安装了相同的工具版本。它没有VS 2017。

在服务器上构建项目会导致以下错误:

“错误 CS0433:‘Oracle.ManagedDataAccess, Version=4.121.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342’ 和 'Oracle.ManagedDataAccess, Version=4.121.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342 中都存在类型‘OracleCommand’ '

到目前为止,我已经能够确定错误的原因是由于 autounify 没有触发/解决项目构建的包引用(我正在使用 nuget 包的包引用)。

我还确认了 teamcity 服务器不包含Microsoft.NET.Build.Extensions.

关于我将如何着手解决此问题的任何想法。我知道在 TC 服务器上安装 VS 2017 可能会解决这个问题,但现在这不是一个选择。任何想法的人?