发布我自己的 Nuget 包时,如何将项目引用指定为 Nuget 包引用?

Avr*_*oel 10 visual-studio nuget nuget-package github-actions

我有一个 Visual Studio 解决方案,它有(以及测试项目等)两个项目,最终将作为 Nuget 包。ProjectA 没有任何依赖项,但 ProjectB 依赖于 ProjectA。该解决方案位于 GitHub 存储库中,设置了构建两个项目并将其发布到 Nuget 的工作流程。

在 Visual Studio 中,我有一个从 ProjectB 到 ProjectA 的项目引用,这使得开发和测试变得容易。但是,当我发布时,我希望 ProjectB 对 ProjectA 具有 Nuget 包依赖关系,而不是在包中包含 DLL。

是否有捷径可寻?我看到了这个答案,但它似乎非常手动。我希望有某种方法可以作为构建和发布工作流程的一部分来做到这一点。

Mr *_*ian 13

默认情况下,当您在 new-sdk 项目下使用ProjectReference来引用时,它实际上将项目 A视为nuget 依赖项。Project AProject B

确保您没有<PrivateAssets>All</PrivateAssets>在项目 B 的 ProjectReference 下添加。打包时PrivateAssets将打破 nuget 依赖关系。Project AProject B

如果你有这个:

<ItemGroup>
    <ProjectReference Include="..\ProjectA\ProjectA.csproj">
      <PrivateAssets>All</PrivateAssets>
    </ProjectReference>
  </ItemGroup>
Run Code Online (Sandbox Code Playgroud)

请删除 <PrivateAssets>All</PrivateAssets>

在我这边,当我发布项目B时,它有A的nuget项目。

在此输入图像描述

  • 这对我不起作用。当我安装“ProjectB”错误“NU1101无法找到包ProjectA”时。源中不存在具有此 ID 的包:Microsoft Visual Studio Offline Packages、nuget.org、MyCustomSource` (2认同)