问题标签 [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.
msbuild - PackageReference 不引用库
当我尝试将包引用添加到 .csproj 文件时,我遇到了项目中未引用实际 DLL 的问题。我的例子是:
该包出现在 Nuget 包管理器中,但不在项目的“参考”列表中,并且无法从项目中访问该程序集。
我正在使用 Visual Studio 15.7.4
谢谢
msbuild - 是否可以将 OctoPack 与新的 PackageReference NuGet 格式一起使用?
我们最近升级了我们的程序集以使用该PackageReference
格式而不是packages.config
我们的 NuGet 依赖项。执行此操作后,其中一个包 ,OctoPack
停止工作。有什么方法可以OctoPack
在仍然使用该PackageReference
格式的同时开始工作吗?
.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
另外,我想提一下,我遇到了几篇文章,说.csproj
s 回来了,不需要.xproj
, project.json
。就个人而言,我喜欢这个想法来处理.csproj
s 像以前一样。
语境:
我不是以英语为母语的人,而且我对非平凡的 nuget 用法和.Net
Core
/Standard
开发非常陌生。
我正准备将应用程序移植.Net Framework
到.Net
Framework
++ 。这现在只是一个WPF应用程序。但在未来它打算保持相同的WPF应用程序,但也有一个新的分支,从现有的逻辑提出。我不确切知道可能的新分支的计划是什么。最有可能的计划是创建一个网站。我可以肯定的是,任务是保持逻辑运行(使用WPF UI)并将其实现为.Standard
Core
.Net Core
.Net Core
ASP.Net Core
.Net Framework
.Net Core
我决定使用Framework
++的Standard
组合Core
作为解决方案,因为它很简单。我的意思是这个概念很容易理解:两个分支(FWK,Core )使用的基类( standard)。代码中不需要多目标或指令(条件编译)。暗示应该通过复制粘贴和修改从头开始创建新的解决方案。仍然不能 100% 确定这个决定的合理性。
但是问题意味着要采取这种方法:Framework
++ 。Standard
Core
我希望这个问题是合理的;我的意思是,在这种情况下有效管理 nuget 包是成功跨平台项目的良好开端。谢谢!
msbuild - 无法将“MSBuild.ILMerge.Task”与 PackageReference 一起使用
使用MSBuild.ILMerge.Task
通过packagereference
以下错误引用时出现:
这是因为 MSBuild.ILMerge.Task.dll 在其包位置找不到 ILMerge 可执行文件。我猜这主要的原因可能是 package.config 和 PackageReference 之间的文件夹结构不同。
其他人遇到过这个问题吗?提前感谢任何帮助
msbuild - PackageReference 将版本逻辑解析为 API
是否有任何可通过 MSBuild 任务、目标或其他方式访问的 API,允许我查询给定 PackageReference 将解析(或已经解析)到哪个版本的 NuGet 包?
例如,如果我有一个 csproj
我有一个我想要的自定义目标
.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
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 的显式引用?
.net - Nuget:将多个大型解决方案迁移到 PackageReference
背景
我正在从事一个具有多个大型解决方案的大型项目。总而言之,我们有超过 400 个 C# 项目。过去,我们将 Nuget 与packages.config
文件一起用于我们的依赖项。现在我们要将所有项目迁移到新PackageReference
格式。
问题
我知道 Visual Studio 提供了一种将单个项目从格式迁移packages.config
到该PackageReference
格式的解决方案,但我不知道有一种解决方案可以一次迁移多个 Visual Studio 解决方案。我不需要 Visual Studio 的兼容性检查,因为所有使用的包都与新格式兼容。
问题
有没有一种方便的方法可以一次将多个 Visual Studio 解决方案从格式迁移packages.config
到该PackageReference
格式?
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 构建失败并显示上述错误消息。
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 可能会解决这个问题,但现在这不是一个选择。任何想法的人?