【发布时间】:2017-08-27 10:37:25
【问题描述】:
我最近将我的 .NET Core 项目从 project.json 迁移到 .csproj。该解决方案包含多个项目,其中一些引用项目使用ProjectReference。
<ItemGroup>
<ProjectReference Include="..\RawRabbit\RawRabbit.csproj" />
</ItemGroup>
我有一个长期使用的 PowerShell 脚本,它遍历项目文件夹并为每个项目创建 NuGet 包
dotnet pack -c Release -o ..\..\artifacts --version-suffix=$buildSuffix
$buildSuffix 类似于 beta7。版本后缀在所有项目依赖项之间共享,这意味着所有项目依赖项都用于预发布使用相同的版本后缀(本例中为beta7)。
为了让包获得正确的版本后缀,我更新了 csproj,以便我的项目使用 VersionPrefix 而不是 Version
<PropertyGroup>
<VersionPrefix>2.0.0</VersionPrefix>
</PropertyGroup>
NuGet 包获得了正确的版本号(例如 2.0.0-beta7),但 nuspec 文件(在 nupkg 文件内)中的项目依赖项在构建期间没有使用 VersionSuffix 被引用。
<dependencies>
<group targetFramework=".NETStandard1.5">
<dependency id="RawRabbit" version="2.0.0" exclude="Build,Analyzers" />
</group>
</dependencies>
这是有问题的,因为我新创建的预发行版获得了一个不存在的发行版的依赖项(在本例中为 2.0.0 而不是 2.0.0-beta7)。
我不确定这是否是预期的行为,如果是的话:关于如何配置我的构建以便它在创建 NuGet 包时遵循 VersionSuffix 的任何想法?
【问题讨论】:
标签: .net nuget .net-core csproj