我最近将我的.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
文件中)中的项目依赖性在没有{{1}的情况下被引用在构建期间使用。
VersionSuffix
这是有问题的,因为我新创建的预发行版获得了一个不存在的版本(在这种情况下是<dependencies>
<group targetFramework=".NETStandard1.5">
<dependency id="RawRabbit" version="2.0.0" exclude="Build,Analyzers" />
</group>
</dependencies>
而不是2.0.0
)。
我不确定这是否是预期的行为,如果是这样的话:任何想法如何配置我的构建以便在创建NuGet包时尊重2.0.0-beta7
?
答案 0 :(得分:1)