【问题标题】:Automatically add nuget dependencies using VSTS and Nuget Pack使用 VSTS 和 Nuget Pack 自动添加 nuget 依赖项
【发布时间】:2018-11-23 02:04:37
【问题描述】:

我正在使用 Visual Studio Team Services 为我作为 Nuget 包发布的库运行构建。

项目包含一个 nuspec 文件,该文件指定名称、描述、项目 url 和其他静态信息。

此 nuspec 文件在 VSTS 中的 Nuget 包构建操作中被引用

我也想包含有关依赖项的信息,但是,我不想在 nuspec XML 中手动管理它(容易出错且耗时)。

nuspec 文件不包含该元素,所以我希望 VSTS NuGet 包操作会自动包含它们。

有什么方法可以实现吗?

【问题讨论】:

    标签: visual-studio nuget azure-devops nuspec nuget-spec


    【解决方案1】:

    您可以使用新的“SDK 风格”csproj 格式将 NuGet 关注点移动到单个 csproj 文件中,让您可以在一个地方指定依赖项和静态元数据。

    最好先创建一个 .NET 标准库,然后将 <TargetFramework> 属性从 netstandard2.0 更改为您之前针对的框架 - 例如。 net452。 (或选择合适的 .NET Standard 版本)

    此项目类型可以使用msbuild /t:Packdotnet pack打包

    当您添加项目或 NuGet 包引用时,这些将在打包过程中自动变为依赖项,如果您通过通配符 (1.2.*) 引用包,则包将依赖于还原期间解析的版本。 VS 在项目属性中提供了一个对话框来编辑此项目类型的包元数据。

    【讨论】:

      【解决方案2】:

      显然,存在一个相当简单的解决方案。
      您可以将 VSTS Nuget 包任务设置为使用 csproj 文件(而不是 nuspec),但它仍将访问 nuspec 以获取元数据。请参阅以下日志:

      重申一下,不要在 VSTS 的构建任务中设置 nuspec 文件的模式,而是设置 csproj 文件的路径。

      【讨论】:

      • @MarinaLiu-MSFT - 还没有,所以需要我再考虑 5 个小时 :)
      • 哦,忘了提醒您发布答案后需要 48 小时。所以你可以稍后再做。
      猜你喜欢
      • 2018-07-11
      • 2020-06-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-19
      • 2016-08-31
      • 2012-04-05
      • 2018-05-29
      相关资源
      最近更新 更多