构建.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包期间使用新值?
答案 0 :(得分:0)
您可以在 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