发布自己的 Nuget 包时,如何将项目引用指定为 Nuget 包引用?
How do I specify a project reference as a Nuget package reference when publishing my own Nuget package?
我有一个 Visual Studio 解决方案,它有(以及测试项目等)两个项目,它们最终将成为 Nuget 包。 ProjectA 没有任何依赖关系,但 ProjectB 依赖于 ProjectA。该解决方案位于 GitHub 存储库中,设置了工作流以构建两个项目并将其发布到 Nuget。
在Visual Studio中,我有一个从ProjectB到ProjectA的项目引用,这使得开发和测试变得容易。但是,当我发布时,我希望 ProjectB 对 ProjectA 具有 Nuget 包依赖性,而不是将 DLL 包含在包中。
有没有简单的方法来做到这一点?看到了,不过好像很手动。我希望有一些方法可以在构建和发布工作流程中执行此操作。
默认,当你使用ProjectReference将new-sdk工程下的Project A
引用到Project B
时,它实际上将 Project A 视为 nuget 依赖项。
确保您没有在项目 B 的 ProjectReference 下添加 <PrivateAssets>All</PrivateAssets>
。当您打包 Project B
.
时,PrivateAssets
将打破 Project A
的 nuget 依赖
如果你有这个:
<ItemGroup>
<ProjectReference Include="..\ProjectA\ProjectA.csproj">
<PrivateAssets>All</PrivateAssets>
</ProjectReference>
</ItemGroup>
请删除<PrivateAssets>All</PrivateAssets>
。
在我这边,当我发布项目B时,它有A的nuget项目
我有一个 Visual Studio 解决方案,它有(以及测试项目等)两个项目,它们最终将成为 Nuget 包。 ProjectA 没有任何依赖关系,但 ProjectB 依赖于 ProjectA。该解决方案位于 GitHub 存储库中,设置了工作流以构建两个项目并将其发布到 Nuget。
在Visual Studio中,我有一个从ProjectB到ProjectA的项目引用,这使得开发和测试变得容易。但是,当我发布时,我希望 ProjectB 对 ProjectA 具有 Nuget 包依赖性,而不是将 DLL 包含在包中。
有没有简单的方法来做到这一点?看到了
默认,当你使用ProjectReference将new-sdk工程下的Project A
引用到Project B
时,它实际上将 Project A 视为 nuget 依赖项。
确保您没有在项目 B 的 ProjectReference 下添加 <PrivateAssets>All</PrivateAssets>
。当您打包 Project B
.
PrivateAssets
将打破 Project A
的 nuget 依赖
如果你有这个:
<ItemGroup>
<ProjectReference Include="..\ProjectA\ProjectA.csproj">
<PrivateAssets>All</PrivateAssets>
</ProjectReference>
</ItemGroup>
请删除<PrivateAssets>All</PrivateAssets>
。
在我这边,当我发布项目B时,它有A的nuget项目