问题标签 [nuget-spec]

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 回答
48 浏览

nuget - 确定应将哪些引用的程序集添加到 frameworkAssemblies

我目前正在打包我们在团队中使用的库,当涉及到frameworkAssembliesnuspec 文件中的列表时,我被卡住了。

我了解 frameworkAssemblies 仅适用于安装在 GAC 上的程序集。问题是一个项目(我们称之为项目 A)可以使用许多 GAC 程序集,但是一旦另一个项目(项目 B)引用项目 A,它可能不需要每个项目 A 的引用,有时甚至不需要,但是在其他时候,它需要引用其中的一些。

所以问题是我如何决定我的类库项目的哪些引用应该添加frameworkAssemblies,哪些不应该添加?

在我看来,遍历我项目的每个类并检查使用此类时应该添加哪些引用是不合理的,因此,我有两种可能性,没有一种是最佳的:(a) 添加每个并且每个引用都作为 frameworkAssembly 或(b)不添加。

0 投票
0 回答
157 浏览

nuget - Nuget:树中的版本依赖关系

我正在创建一个 Nuget 包,我们称之为 A。

A 依赖于 B 版本 4.3 [4.3.0,4.4)。

B 依赖于 C 版本 4.0 [4.0.0,4.1)。

A 依赖于稍晚版本的 C [4.0.8,4.1)。

当包 A 构建时,它确定 B 带来了对 C 的依赖,并决定不强制依赖于最新版本的 C。因此,当我将 A 拉入产品时,它会从存储库中带来 C 版本 4.0.0。

有没有办法强制 A 和 C 的更高版本之间的依赖关系?

我知道我们在这里并没有真正做好版本控制。但是假设我们不能立即解决这个问题。

0 投票
1 回答
2088 浏览

nuget - 带有不在 lib 子文件夹中的程序集的 NuGet 参考规范

我有一个相当复杂且大型的项目,我想尝试将其打包为 nuget 包以供内部使用。我想避免复制文件,因为有很多(150 MB+ 的二进制文件)。相反,我试图将包蓝图文件指向使用该<file ...>元素的文件。这是我可以重现我的问题的文件的简化版本:

无论我尝试什么,我都会收到错误消息:

无效的程序集引用“utils.dll”。确保 lib 目录中存在名为“utils.dll”的文件。

我尝试了这个答案的建议,但无济于事。

是否可以避免物理布局目录,如NuGet 文档中所述,而是使用文件引用?

0 投票
1 回答
802 浏览

c# - 自定义 NuGet 包安装输出窗口消息

当我安装我的自定义 NuGet 包时,它可以工作,但是 VS 中的输出窗口显示消息,例如它试图添加两次文件并且它们已经存在。输出在这篇文章中进一步下降。

我在这里的服务器上有一个 NuGet 私有存储库,用于托管我们的画廊。安装和卸载工作正常,即使输出窗口显示以下消息。我对规范文件中的标签很好奇<files>,如果有不同的方法我需要这样做。我根据文档尝试了多种方法。我的版本是从 NuGet 站点安装的最新版本。

从网站:The latest version of the nuget.exe command-line tool is always available from http://nuget.org/nuget.exe

指定要包含在包中的文件

输出窗口在Install-Package CustomNuGet上显示如下内容:

/Plugins/CustomNuGet/CSS/custom.css 项已存在。

/Plugins/CustomNuGet/Scripts/custom.js 项已存在。

/Plugins/CustomNuGet/Views/custom.cshtml 项已存在。

输出窗口在Uninstall-Package CustomNuGet上显示如下内容:

在您的工作区中找不到项目 /Plugins/CustomNuGet/CSS/custom.css。

在您的工作区中找不到 /Plugins/CustomNuGet/Scripts/custom.js 项。

在您的工作区中找不到项目 /Plugins/CustomNuGet/Views/custom.cshtml。

我使用命令行工具创建了一个自定义 Nuget 包。该文件夹如下所示:

规范文件是使用创建的:nuget spec并且nuget pack根据文档在根 CustomeNuGet 文件夹中的包。这是规范文件:

我没有看到任何关于这个确切问题的帖子,所以希望其他人也发生过这种情况,这只是我错过的一个设置。

0 投票
2 回答
772 浏览

nuget-package - 创建一个使用所有默认行为但添加一个附加文件的 nuspec 文件

我想要一个nuspec自动读取所有信息的文件,packages.config等等,构建所有依赖项,但也只包含一个附加文件。

有没有办法做到这一点?

例如,这是一个nuspec几乎可以满足我要求的文件:

如果我的项目引用了十个包,那么当我将包打包在一起时nuget,上面的文件将检测到并添加它们作为依赖项。nuspec

但是,当我添加一个files元素时,所有到我的其他 nuget 依赖项的自动链接都会停止:

如果没有自动链接,我实际上必须为我的项目维护所有依赖项的两份副本:一份在csproj文件中,一份在此处。

一定有办法做到这一点?!我只想通过 nuspec 向我的包中添加一个额外的文件。

0 投票
3 回答
2974 浏览

nuget - 在一个解决方案中声明相互依赖的 nuget 包

我们有很多项目的解决方案以及这些项目之间或多或少复杂的依赖关系图。现在,这些项目中的每一个都应该成为自己的 nuget 包,并且 nuget 包的依赖关系图应该反映项目的 on。

我有两个问题:

  1. 是否有可能在将所有项目保持在同一个解决方案中的同时实现这一目标?如果有怎么办?
  2. 建议将所有项目保持在同一个解决方案中吗?对此的常见/“最佳实践”方法是什么?
0 投票
1 回答
1426 浏览

asp.net - 如何添加 nuspec 作为对项目的引用

我正在尝试将 nuspec 添加到我的项目中作为参考。通过:右键单击参考 > 添加参考 > 浏览 > nuspec_file 它不起作用...正确的方法是什么?

0 投票
0 回答
433 浏览

nuget - 如何自动在 nupkg 中包含合同程序集?

我刚开始使用 nuget 为我们公司的内部库创建一些包。该库由许多程序集组成,其中许多具有从代码合同生成的合同参考程序集。

我用的是最直接的nuget pack方法,就是传入csproj文件路径,让它解决项目之间的所有依赖。问题是它不包括 lib 文件夹中的合同程序集。

有没有办法让它也获得合同程序集并在安装包时正确地引用项目中的实际 dll?我认为这应该以某种方式自动化,因为 nuget 可以检查项目文件并知道它会生成合同程序集。

如果这需要明确的文件引用,它将极大地复杂化我们当前的过程,因为我必须重新排列文件和文件夹以匹配 .nuspec 文件的位置,我希望避免这种情况。

编辑:

我刚刚发现另一个处理代码合同和 nuget 包的问题,​​但它没有直接回答我的问题。我想我会在这里添加链接,因为它们处理几乎相同的事情。

0 投票
3 回答
3003 浏览

nuget - Nuget 包不支持程序集版本上的位数

我需要nuget pack生成一个只有 3 位数字的包版本(我们想对其进行语义版本控制)但是当我在属性设置为“1.0.0”的 csproj 上调用它时AssemblyVersion,生成的 nupkg 文件以版本“1.0”结尾.0.0" 在它的元数据(和文件名)中。为什么命令行工具不支持AssemblyVersion属性上指定的位数?

我首先调用了nuget spec对 csproj 文件的调用,该文件会生成一个像这样的存根 nuspec 文件(它实际上包含更多带有占位符值的标签,但我已经删除了它们,因为我们不需要它们):

将此 nuspec 文件签入 TFS 与 csproj 文件位于同一文件夹中后,我们现在可以像这样调用 pack:

项目的 AssemblyInfo.cs 文件包含明确设置版本的行:

一切都很好,除了该工具在检索程序集版本时使用 4 位数字。当我右键单击文件资源管理器上的 dll 并转到详细信息时,即使 Windows 也仅显示 3 位数的版本。为什么 NuGet 使用 4 位数字?我可能遗漏了一些明显的东西吗?

在 nuspec 中对版本进行硬编码显然并不理想,因为这样我们就必须在两个不同的地方维护版本号,而它们应该总是相同的。我的意思是,这应该是$version$NuGet 本身知道如何从项目中提取的特殊占位符值背后的想法。

0 投票
1 回答
2535 浏览

nuget - 如果在 nuspec 文件中指定了资源,如何在项目中包含内容文件?

我正在创建一个 nuget 包定义以包含一大堆 DLL。其中一些仅在设计时需要,因此根据Nuspec 参考,我创建了一个references部分来指定项目应引用哪些程序集。

我还指定了要包含的文件列表。其中一些文件是库,一个是在包安装期间执行的 PowerShell 脚本,一个是稍后应添加到项目中的内容文件。

这些是我的 nuspec 文件的相关部分:

现在这是我的问题:安装包时,licenses.licx 文件没有包含在项目中。我必须改变什么才能实现这一目标?

将其添加到该references部分不起作用,因为它不是库...