Nuget 任务忽略引用项目的自定义版本
Nuget task ignore custom version of referenced projects
我正在使用 VS2017,我编写了一个自定义 MSBuild SDK,它为每个项目创建一个版本,它不会更新更新项目文件。在 SDK 中创建和引用的版本。这项工作对项目本身非常有用,它将反映从项目创建的 nuget 包。
但是当我从另一个项目引用该项目并从第二个项目创建 nuget 包时,它总是会创建对我的第一个项目的 1.0.0 版的依赖。
看起来 nuget pack 任务只查看项目文件本身,从不 运行 我的 SDK 更新项目版本。
现在问题:
是否有任何自定义 属性 来指示其版本
- 或者有没有我可以用来自己构建 nuget 包并在那里插入项目引用的包
毕竟我通过在 NuGet.Build.Tasks.Pack.targets
中搜索找到了答案。
当 NuGet 要打包项目时,它会从引用的程序集中调用 _GetProjectVersion 来获取它们的版本,它取决于 GetPackageVersionDependsOn
。
所以我唯一应该做的就是在 Sdk.props
:
中添加我用来将项目版本更新到 GetPackageVersionDependsOn
的任务
<PropertyGroup>
<GetPackageVersionDependsOn>
UpdateVersion;$(GetPackageVersionDependsOn)
</GetPackageVersionDependsOn>
</PropertyGroup>
我正在使用 VS2017,我编写了一个自定义 MSBuild SDK,它为每个项目创建一个版本,它不会更新更新项目文件。在 SDK 中创建和引用的版本。这项工作对项目本身非常有用,它将反映从项目创建的 nuget 包。
但是当我从另一个项目引用该项目并从第二个项目创建 nuget 包时,它总是会创建对我的第一个项目的 1.0.0 版的依赖。
看起来 nuget pack 任务只查看项目文件本身,从不 运行 我的 SDK 更新项目版本。
现在问题:
是否有任何自定义 属性 来指示其版本 - 或者有没有我可以用来自己构建 nuget 包并在那里插入项目引用的包
毕竟我通过在 NuGet.Build.Tasks.Pack.targets
中搜索找到了答案。
当 NuGet 要打包项目时,它会从引用的程序集中调用 _GetProjectVersion 来获取它们的版本,它取决于 GetPackageVersionDependsOn
。
所以我唯一应该做的就是在 Sdk.props
:
GetPackageVersionDependsOn
的任务
<PropertyGroup>
<GetPackageVersionDependsOn>
UpdateVersion;$(GetPackageVersionDependsOn)
</GetPackageVersionDependsOn>
</PropertyGroup>