visual-studio - 发布我自己的 Nuget 包时,如何将项目引用指定为 Nuget 包引用?
问题描述
我有一个 Visual Studio 解决方案,它有(以及测试项目等)两个项目,最终将作为 Nuget 包。ProjectA 没有任何依赖关系,但 ProjectB 依赖于 ProjectA。该解决方案位于 GitHub 存储库中,并设置了工作流以构建两个项目并将其发布到 Nuget。
在 Visual Studio 中,我有一个从 ProjectB 到 ProjectA 的项目引用,这使得开发和测试变得容易。但是,当我发布时,我希望 ProjectB 对 ProjectA 具有 Nuget 包依赖项,而不是在包中包含 DLL。
是否有捷径可寻?我看到了这个 SO answer,但它似乎非常手动。我希望有一些方法可以作为构建和发布工作流程的一部分来做到这一点。
解决方案
默认情况下,当您在 new-sdk 项目下使用ProjectReference来引用Project A
时Project B
,它实际上将项目 A视为 nuget 依赖项。
确保您没有<PrivateAssets>All</PrivateAssets>
在项目 B 的 ProjectReference 下添加。PrivateAssets
将Project A
在您打包时打破 nuget 依赖关系Project B
。
如果你有这个:
<ItemGroup>
<ProjectReference Include="..\ProjectA\ProjectA.csproj">
<PrivateAssets>All</PrivateAssets>
</ProjectReference>
</ItemGroup>
请删除 <PrivateAssets>All</PrivateAssets>
.
在我这边,当我发布项目 B时,它有 A 的 nuget 项目。
推荐阅读
- flutter - 自定义小部件 GridView
- javascript - Vue.js 数据未在视图中显示我正在尝试显示仅显示空白的待办事项列表
- python - _frozen_importlib._DeadlockError:_ModuleLock('django.test.signals') 在 140668266856120 检测到死锁
- android - 无法与客户端建立 TLS
- svg - 如何以编程方式确定 svg 路径属于哪个几何形状?
- javascript - 为什么在事件循环之外执行 setTimeout 和 setImmediate 的顺序不一致?
- android-mediaplayer - 在 Android 中播放我的应用语音指导时如何降低音乐音量,然后再次增加音乐?
- apache - 通过 .htaccess 重定向不起作用
- c++ - 基于对向量中的第一个元素的降序排序没有给出期望的结果
- ios - 容器生成器