我有一个包含多个项目的解决方案。假设 PackageA 和 PackageB,其中 PackageB 依赖于 PackageA 和 项目引用 .
每个项目还设置为在构建时输出 NuGet 包。这个过程本身可以完美运行,但我无法为单个构建指定包版本范围。
例如。我想将 PackageB 限制为仅指 PackageA 版本 1.0.*(补丁步骤)。
<Project Sdk="Microsoft.NET.Sdk" ToolsVersion="15.0">
<PropertyGroup
<TargetFrameworks>netstandard2.0;netcoreapp2.0;net46</TargetFrameworks>
<RootNamespace>PackageB</RootNamespace>
<Company>MyCompany</Company>
<Authors>John Doe</Authors>
<Description>This package depends on a specific version of PackageA.</Description>
<Version>1.1.0</Version>
<Copyright>Copyright © 2018 John Doe</Copyright>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\PackageA\PackageA.csproj" />
</ItemGroup>
</Project>
MSBuild 似乎忽略了 ProjectReference 标记中的任何 Version="1.0.*"或 AllowVersion="1.0.*"参数。
是否有可能在不破坏 ProjectReference 或使用 PackageReference 的情况下指定版本范围?
最佳答案
据我所知,这是不可能的 ProjectReference
,不过也有一些开放issues在 Github 上的这个主题中,所以他们可能会在某个时候实现它。
但目前此功能仅在 PackageReference
上启用. Docs .
关于c# - 具有 ProjectReference 依赖项的 NuGet 版本控制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53278544/