我最近将我的.NET核心项目从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文件中)中的项目依赖项被引用,而没有在构建过程中使用的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?
发布于 2017-04-02 22:59:29
https://stackoverflow.com/questions/43169772
复制相似问题