c# - 具有 ProjectReference 依赖项的 NuGet 版本控制

标签 c# nuget semantic-versioning

我有一个包含多个项目的解决方案。假设 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/

相关文章:

c++ - 每个解决方案一个版本的 nuget 包(但不是最新的)

c# - 创建一个基本的 NuGet 包

semantic-versioning - 0.7.9 之后的下一个次要版本是什么?

c# - SQL:指定的转换无效

c# - 如何将 SQLite .db 添加到 C#.NET 项目中

c# - 在 POST 方法、HttpClient 中使用 application/x-www-form-urlencoded

C# 纯数字文本框控件

Nuget 与 Artifactory。 key 在指定状态下无效

bash - 修复 shell 脚本以增加 semversion

semantic-versioning - 使用 SemVer 将 alpha 到 beta 发布到生产环境