我最近将我的.NET Core项目从project.json
迁移到.csproj
。该解决方案包含多个项目,其中一些参考项目使用ProjectReference
。使用项目引用创建NuGet包时不支持版本后缀
<ItemGroup>
<ProjectReference Include="..\RawRabbit\RawRabbit.csproj" />
</ItemGroup>
我有一个PowerShell脚本,我已经很长一段时间,横穿该项目的文件夹,并创建的NuGet包每个项目
dotnet pack -c Release -o ..\..\artifacts --version-suffix=$buildSuffix
哪里$buildSuffix
有点像beta7
。版本后缀在所有项目依赖项之间共享,这意味着所有项目依赖项都针对预发布版使用相同版本后缀(本例中为beta7
)。
为了使包以获得正确的版本后缀,我让我的项目都是使用VersionPrefix
而不是Version
<PropertyGroup>
<VersionPrefix>2.0.0</VersionPrefix>
</PropertyGroup>
的NuGet包得到正确的版本号已经更新了的csproj(如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
的任何想法?