问题标签 [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 回答
1391 浏览

c# - 具有 PackageReferences 自动到先决条件的 ClickOnce 应用程序

如何让 PackageReference 包自动包含在 ClickOnce 中?

我正在尝试将 ClickOnce 应用程序从 packages.config 转换为使用 PackageReferences,因为我有 30 多个 nuget 包(主要是依赖项),它使升级我实际需要参考的几个包变得更加容易。

问题是,一旦我这样做了,所有 nuget 包程序集现在都被视为“先决条件(自动)”而不是“包含(自动)”,从而使 ClickOnce 部署跳过它们。对于任何自定义 nuget 包,它还为我提供了“...必须经过强签名才能被标记为先决条件”。

更新:

事实证明,这根本行不通。像 System.Runtime 这样的程序集不包含在 ClickOnce 中,期间。没有包含它的选项,即使在手动将所有程序集设置为 Include 之后,它也最终破坏了部署(由于 System.Runtime 的 FileNotFoundException)。我不得不恢复到 packages.config。我很想看到 ClickOnce 更新以与 PackageReferences 一起使用

0 投票
2 回答
2972 浏览

c# - update-package 运行时约束 PackageReference 升级版本

在 .NET 的旧版packages.configNuGet 系统下,我可以allowedVersions通过使用Package 元素上的属性来限制在更新包时考虑的包的可能版本

update-packageVisual Studio 中为包括上述内容的项目运行时,不会发生更新,Newtonsoft.Json因为我已使用该allowedVersions属性固定到 10.0.3。

我怎样才能在 下实现这一点PackageReference?将semver语法应用于 Version 属性只会影响恢复的版本- 它不会限制更新。因此,如果我指定以下内容PackageReference并运行update-package,例如,如果 11.0.1 在我的 NuGet 存储库中,我将升级到 11.0.1。

背景

我们依靠命令行工具来更新包,因为我们既有快速移动的内部包(一天更新多次)和更稳定的低移动包(例如:ASP.NET)。在大型代码库中,手动更新.csproj文件中的每个依赖项对我们来说根本无法扩展(并且容易出错)。在packages.config下面,我们可以“固定”我们不想升级的第三方包,也可以更新到最新的快速移动依赖项。

0 投票
0 回答
390 浏览

.net - 使用 PackageReference 从 NuGet 包的子文件夹中引用 DLL

我们正在将项目从 packages.config 升级到 PackageReference 结构。引用的包之一在子文件夹中具有 DLL,例如:

  • lib\net45\some.dll
  • lib\net45\xxx\other.dll

当使用 packages.config 从项目中引用此包时,该包的所有 DLL 都作为引用包含在项目中,并且工作正常。使用 PackageReference 时,它​​似乎只能识别根文件夹 (lib\net45) 中的 DLL。使用子文件夹中 DLL 的功能时,我们会遇到构建错误。有没有办法告诉 NuGet 在使用 PackageReference 时考虑 NuGet 包的子文件夹?

0 投票
0 回答
928 浏览

.net - 迁移到包引用格式后,配置文件转换在构建服务器上不起作用

我正在使用 Microsoft.VisualStudio.SLowCheetah (v3.0.61) 包在构建期间将多个配置文件转换为发布版本。

最近我已将解决方案中的所有项目从 packages.config 迁移到包引用格式。之后,SlowCheetah 执行的转换在构建服务器上中断。如果从 Visual Studio 2017 (v 15.6.7) 本地发布到文件系统,一切正常。之前SlowCheetah 的所有目标都是在末尾直接导入的

*.csproj

文件。在包引用方法中,已使用包中的所有目标都合并到

obj/PROJECTNAME.csproj.nuget.g.targets

文件。此问题仅影响 Web 项目。(带有集成测试的项目中 App.config 文件的转换工作正常。)

我在构建服务器上使用下一个命令来恢复包:

下一个用于构建解决方案:

带有配置文件的 csproj 文件片段:

我正在使用 MSBuild v 15.0

更新 1

*.csproj 文件包含下一个导入:

经过一番调查,我注意到如果从

转型开始发挥作用。

这种变化是否有其他影响?

0 投票
0 回答
219 浏览

msbuild - 如何让 msbuild /restore 为独立/非 SDK 项目文件工作?

我想msbuild /restore与我的项目文件一起使用。但是,我的项目文件更像是一个脚本,它协调构建具有特定属性等的多个项目。因此,设置对我来说没有意义,Sdk="Microsoft.NET.Sdk"因为这会导致出现奇怪的错误。但是,如果我不指定 Sdk,/restore则会忽略它,并且它实际上无法恢复任何内容。

这是我的示例独立项目:

我的调用和输出:

0 投票
1 回答
835 浏览

visual-studio-2017 - Visual Studio 2017 将 packages.config 迁移到 PackageReference

packages.config使用Newtonsoft.Json包迁移到PackageReferencecsproj 格式时,我遇到了兼容性问题:

Newtonsoft.Json v10.0.3, install.ps1 脚本在迁移后安装包时会被忽略。

这是什么东西可以破坏什么吗?该项目在本地 VS 2017 中编译良好。但 TeamCity Visual Studio (sln) 构建失败并出现错误namespace name Newtonsoft could not be found。这可能与迁移问题有关吗?

0 投票
1 回答
9376 浏览

visual-studio-2017 - Visual Studio 2017 中的 nuget 包参考蓝色图标

出于某种原因,在我的控制台应用程序中,我通过 nuget 安装的几个参考显示了蓝色的 nuget 图标。我可以在本地构建我的项目,但不是在我将项目部署到云之后。错误消息抱怨无法找到这两个参考。似乎我无法通过右键单击删除它们(没有删除选项可用)。任何想法?

在此处输入图像描述

0 投票
0 回答
591 浏览

nuget - NuGet CLI 不为包引用还原包

我已经使用 Visual Studio 2017 创建了一个新的 .net 核心项目,然后将一个 nuget 包添加Newtonsoft.Json到该项目中。之后我知道包将缓存在文件夹C:\Users\<UserName>\.nuget\packages中。

由于某种原因,我必须删除它,然后我想恢复它,我无法使用 nuget.exe 恢复它。nuget.exe restore, 命令可以成功执行,但是包没有下载到那个文件夹。

这个命令我也试过了MSBuild /t:restore,还是不行,包下载不了。

有什么建议吗?

0 投票
0 回答
170 浏览

c# - 在 Azure 云服务上使用带有 PackageReference 的 ValueTuple

我正在尝试将我的 c# 项目从旧的 csproj 样式转换为新的 csproj 样式,但这会在运行时破坏我的 Azure 云服务,因为System.ValueTuple.dll复制的是 ReferenceAssembly 而不是实现程序集。

这与此已关闭/已放弃的问题中描述的问题相同

由于我的项目目前针对 .NET 4.6.2,因此可以通过针对 .NET 4.7+ 来“解决”这个问题,因为它是附带的System.ValueTuple,因此不需要将其作为 NuGet 包进行引用。

如果可能的话,我想避免这种情况,因为:

问题的补充说明:

我将使用:

  • refDLL对于:packages\system.valuetuple\4.5.0\ref\net461\System.ValueTuple.dll
  • libDLLpackages\system.valuetuple\4.5.0\lib\net461\System.ValueTuple.dll.

它们很容易区分,例如refDLL40 kb 和libDLL78 kb。

实际代码和完整的构建日志文件可在此处找到:https ://www.dropbox.com/s/kquv5voa19jfonz/AzureCloudService1.zip?dl=0

我有一个解决方案结构如下:

  • AzureCloudService1
  • WorkerRole1(旧 csproj)
  • WorkerRole2(新 csproj)

搭建云服务后

  • WorkerRole1\bin\DebuglibDLL
  • WorkerRole2\bin\Debug\net461libDLL
  • AzureCloudService1\obj\Debug\WorkerRole1libDLL
  • AzureCloudService1\obj\Debug\WorkerRole2refDLL

从日志中,我注意到 WorkerRole1 和 WorkerRole2 之间存在以下差异。

工人角色1:

工人角色2:

在各种 Microsoft 问题跟踪器上搜索其他相关问题后,我找到了这个,似乎相关:https ://github.com/dotnet/sdk/issues/1738 。

0 投票
1 回答
138 浏览

visual-studio - .NET 完整框架项目在哪些版本的 Visual Studio 中支持 PackageReference?

根据https://docs.microsoft.com/en-us/nuget/consume-packages/package-references-in-project-files

.NET 完整框架项目支持 PackageReference

那是在哪个版本的 Visual Studio 中?