.net core 在DNCore打包期间更改“Referencee”$(PackageVersion)

.net core 在DNCore打包期间更改“Referencee”$(PackageVersion),.net-core,nuget-package,msbuild-4.0,.net Core,Nuget Package,Msbuild 4.0,我正在尝试使用MSBuild根据分支名称自动更新包版本。这适用于项目本身,但使用相同MSBuild目标的引用项目使用默认版本,这意味着我的目标没有运行。例如,假设我有以下项目: 控制台AP1 项目参考:ClassLibrary1 班级图书馆1 在构建上述内容时,我得到以下nuspec/nugets: 控制台AP1版本0.0.2-BETA0001 依赖项id=ClassLibrary1版本=1.0.0 类库版本0.0.2-Beta0001 请注意,正在拉取的PackageVersion是Proje

我正在尝试使用MSBuild根据分支名称自动更新包版本。这适用于项目本身,但使用相同MSBuild目标的引用项目使用默认版本,这意味着我的目标没有运行。例如,假设我有以下项目:

控制台AP1 项目参考:ClassLibrary1 班级图书馆1 在构建上述内容时,我得到以下nuspec/nugets:

控制台AP1版本0.0.2-BETA0001 依赖项id=ClassLibrary1版本=1.0.0 类库版本0.0.2-Beta0001 请注意,正在拉取的PackageVersion是ProjectReference的默认版本,而项目本身正在使用发现的包版本进行构建

我尝试过更改GetTargetPath Dependenson以及之前的targets=GetTargetPath;在Nuget Pack MSBuild中浏览之后,GetProjectsReferenceingProjectJSON,但它们似乎没有效果

覆盖包版本; $BuildDependsOn; 覆盖包版本; $GetTargetPathDependenson; 这是可能的,还是我必须在CI中使用Powershell


在最近的NuGet和.NET Core 2.*SDK版本之前,您需要运行的目标是CollectPackageReference;准备构建。为了让它在旧版本中工作,我使用了Restore_此外,GenerateRestoreProjectSpec,但在最近的工具上不再需要这些。请参阅我正在使用的创建公共NuGet包

目前,依赖项包版本在还原期间被锁定,并从obj\project.assets.json文件中读取,这就是使用特定于还原的目标的原因。请注意,restore不会从NuGet软件包导入道具/目标文件,因此当前无法通过包含用于项目到项目引用的生成资产的NuGet软件包使用版本控制逻辑。请参阅-计划似乎是从读取资产文件转移到重新评估引用项目的版本,而不是在恢复期间锁定它们