在使用项目引用创建NuGet包时,版本后缀不受尊重

时间:2017-04-02 14:54:45

标签: .net nuget .net-core csproj

我最近将我的.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

1 个答案:

答案 0 :(得分:1)