问题标签 [nuspec]
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.
icons - NuGet 包图标未更新
我们使用 Team city 作为内部 NuGet 存储库。我在我的 nuspec 文件中添加了一个图标 url,并将图标文件放在启用了内容浏览的 IIS 上。该图标显示在 Visual Studio 的 NuGet 管理器中。
现在我想更新图标,所以我想我只需要更新 IIS 上的图标,但图标没有更新。我也尝试过通过Team city构建新版本的包,但是图标没有更新。
是否正在进行某种缓存?什么时候从 url 中检索到图标?是在包装上还是包管理器?
c# - 限制 .nuspec 中的包依赖项(例如,'< 0.7' 不起作用)
我有两个 c# 库:
- 主库
- 依赖库(在 0.6 和 0.7 版本中发布)
主库在 .nuspec 中定义了以下内容:
根据Nuget 版本控制的文档,这应该将依赖库限制为 0.6 版。检查 Nuget.org 列表给出以下信息:
完全符合预期。尽管如此,Visual Studio 还是建议将依赖库更新到 0.7,并且毫不犹豫地这样做了。我曾经设法在类似的情况下遇到错误,给出一条消息说包限制阻止我进行更新,这就是我想要的。我在这里错过了什么吗?
nuget - 为什么 Nuget 不包括/查找 beta 版本
我在 nuspec 中有一个像这样定义的“Bbb”的依赖项
为“Aaa”构建和部署 Aaa 7.5.0-beta498 的 beta 版本
为“Bbb”构建和部署 Bbb 3.0.0-beta5 的 beta 版本
但是当我尝试将 nuget 包“Bbb”安装到第三个项目(“Ccc”)中时,我收到了这条消息
找不到与“Bbb 3.0.0-beta5 约束:Aaa (≥ 7.5.0 && < 7.5.1)”兼容的“Aaa”版本。
为什么?我已经在 Nuget 包管理器中检查了包含 PreRelease。包含 nuspec 预发布的语法是什么?
msbuild - 来自 csproj 的 Nuget 包现有构建
在我的 CI 构建中,我有 MSBuild,它将 Release 构建输出到.\.output\_Build
文件夹中;在这种情况下,这个文件夹有我想打包成 nupkg 的 exe。
当我执行时:
BasePath
是 中的文件OutputPath
夹msbuild -OutputPath
。我得到:
这似乎表明 nuget 从 csproj 读取了 Debug 配置的 OutputDirectory 并且正确地找不到任何要打包的东西。我认为该-BasePath
参数会告诉它在哪里寻找工件,但看起来情况并非如此。使用 csproj 文件进行打包时,如何告诉 nuget 不要遵循 csproj 中的路径?我必须使用 csproj 文件进行打包。
c# - 非传递包依赖?
我有一个依赖于另一个包 Y 的包 X。默认情况下(Visual Studio 2015 Upd3 + nuget 3.5)任何引用包 X 的项目也将参考包 Y 进行更新。问题是,X 的客户根本不需要参考 Y,因为包 Y 的 API 不是也不应该暴露给客户。
因此,预期的行为如下:添加对包 X 的引用后,包 Y 的内容应在构建时复制到输出文件夹中,但包 Y 不应添加到项目引用中。
有什么办法吗?
从理论上讲,我们可以将基础设施包 Y 的源代码包含到我们的项目 X 中(这两个项目都是 MIT 许可下的开源项目),但我更愿意使用或多或少的标准方法。
我们需要它的案例示例:
我们现在正在调查的案例:带有测试助手的 nuget 包,可确保 PDB 文件与源文件匹配(参考
Microsoft.DiaSymReader
包)。我们不希望我们所有的测试项目都引用Microsoft.DiaSymReader
程序集。或多或少是理论上的一个(目前不是问题,但如果项目将投入生产将是一个问题):使用 Roslyn 编译和运行脚本的自定义脚本引擎。我们不希望在将使用我们的脚本引擎的所有项目中都引用 Roslyn 程序集。
后一种情况更糟糕,因为我们不能将 roslyn 源代码合并到我们的项目中,显然,也不能将 roslyn 二进制文件作为我们包的一部分分发。
欢迎任何建议!
nuget - 如何在 nuspec 中指定特定于配置的文件夹
我见过的示例使用相对于 nuspec 文件位置的路径指定要包含的文件,例如:
有没有办法指定它,它会根据我的构建配置使用适当的源目录:即:
- bin\Debug 如果我使用 -Prop Configuration=Debug 打包
- bin\Release 如果我使用 -Prop Configuration=Release 打包
xml - MSBuild:如何通过 xpath 更新 xml
我正在尝试寻找解决方案,如何使用 MSBuild 脚本更新 nuspec xml 中的发行说明。
现在我已经使用 XmlUpdate 创建了 MSBuild 目标:
这可以正常工作,但前提是 Nuspec 文件已经包含条目。
如何处理根本不存在 releaseNotes 的文件?我可以以某种方式从 xpath 获取数字,如果它为零,则使用另一个函数进行 xml 更新?
PS:来自 MSBuildTasks 的 NuGetPack 扩展不适用于包元数据。
nuget - .nuspec 中 NuGet 包描述中的超链接
我正在开发一个 NuGet 包并在 github.com 上保持开源
安装后我的包需要在 VS 解决方案中完成一些配置步骤,我将其记录在 github 上的 README.md 文件中。
我想在 NuGet 包中引用这个 README.md 文件,以便人们知道包安装后要做什么。
我在.nuspec<projectUrl>
文件中指定了指向我在 github 上的 Git 存储库。但是对于用户来说,他们需要单击它来阅读文档并不明显。
我想让用户按照链接阅读完整文档的声音清晰明了。最好有一个超链接,例如在.nuspec<description>
文件的字段中,因此它在以下位置显示为超链接:
- nuget.org 上的项目页面
- 浏览\安装包时在 Visual Studio 中显示的包详细信息
我尝试了不同的方法来添加链接,例如 XML 转义<
和>
as <
,>
但它不会将其显示为链接,而只是显示为 html 文本。
nuget - 调用 Nuget 包时 nuspec 中的子元素无效
当我跑
命名空间“ http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd ”中的元素“元数据”在命名空间“ http://schemas.microsoft.com/packaging/ ”中具有无效的子元素“ packageSourceUrl ” 2010/07/nuspec.xsd '。预期的可能元素列表:命名空间“ http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd ”中的“contentFiles、frameworkAssemblies、references、developmentDependency、language、releaseNotes” 。
我了解该元素无效且不在 xsd 中。
我的 nuspec 文件中有 2 个元素在metadata
创建 nupkg 时会产生错误:
如何避免架构出现此错误?
.net - 将 .net 框架依赖项添加到 nuspec 文件
我有以下nuspec
文件:
有了这个,我创建了 nuget 包,但是当我尝试在另一个项目上安装它时,我收到了错误:
无法安装包“Project.Proxy 0.0.1”。您正在尝试将此包安装到以“.NETFramework,Version=v4.6.1”为目标的项目中,但该包不包含任何与该框架兼容的程序集引用或内容文件。有关详细信息,请联系包作者。
那么我需要在我的nuspec
文件中添加什么以使其与 .net 4.6 项目兼容?