我最近將我的.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
的任何想法?