【问题标题】:How to set PackageVersion property during build如何在构建期间设置 PackageVersion 属性
【发布时间】:2018-08-14 13:30:11
【问题描述】:

在构建我的 .Net Core 类库时,我会自动生成 Nuget 包。这些包的版本取自 .csproj 文件中的 PackageVersion 属性。

问题是我想在构建运行时覆盖目标中这些 PackageVersion 属性的值。我尝试了以下方法:

  <Target Name="PreBuild" BeforeTargets="PreBuildEvent">
    <PropertyGroup>
      <PackageVersion>5.0.99</PackageVersion>
    </PropertyGroup>
  </Target>

(5.0.99 只是这个例子的一个简单值)

但是,这似乎无济于事。 PackageVersion 属性的初始值继续用作 Nuget 包的版本。

如何覆盖目标中 PackageVersion 属性的值,以便在生成 Nuget 包期间使用新值?

【问题讨论】:

  • 不完全是答案,但使用 cmets 并不方便。

标签: msbuild nuget


【解决方案1】:

您可以在您的 csproj 文件中扩展 GetPackageVersionDependsOn 属性。

<PropertyGroup>
  <GetPackageVersionDependsOn>MyCustomTask;$(GetPackageVersionDependsOn)</GetPackageVersionDependsOn>
</PropertyGroup>

<Target Name="MyCustomTask">
 <PropertyGroup>
  <PackageVersion>5.0.99</PackageVersion>
 </PropertyGroup>
</Target>

这也可以通过使用上述代码导入自定义目标文件来实现。

<Import Include="../MyCustom.targets" />

但在使用安装目标导入的自定义 nuget 包时,它不起作用。 在msbuild -t:pack期间不导入Nuget包*.targets文件

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-18
    • 2017-01-28
    相关资源
    最近更新 更多