2017-04-02 29 views
2

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

回答

相关问题