【发布时间】:2021-03-19 15:50:52
【问题描述】:
我有一个“旧式”.NET 框架项目,其中包括 nuget 引用和其他项目引用。现在我切换到 PackageReference 格式(删除了 packages.config)。我想为我的项目创建一个 NuGet 包。所以我添加了对“NuGet.Build.Tasks.Pack”包的引用并使用了 MSBUILD 包目标。首先,它看起来像预期的那样,生成的包包含我所有的引用和相应的 NuGet 引用。现在我有一个问题,我也使用一个项目来项目参考:
<ProjectReference Include="..\Wrapper\MyWrapper\MyWrapper.csproj">
<Project>{6b9a7dd0-b93f-3a5e-8fdf-99d0bf811652}</Project>
<Name>MyWrapper</Name>
</ProjectReference>
基于 nuget 文档 - 供参考:
项目到项目的引用默认被视为 nuget 包参考
但我希望将此项目引用打包到我的包中,而不是“nuget 包引用”。我发现了使用
的帖子PrivateAssets="全部"
对于项目引用可以解决问题,但是将此属性添加到项目引用节点不会改变任何内容。任何帮助都会很棒!
【问题讨论】:
-
(请注意,您不需要添加对 NuGet.Build.Tasks.Pack 的引用,也不需要
ProjectGUID)。阅读this thread -
嗯,我想我仍然需要这个。您所指的线程是关于 SDK 项目的。但我使用描述中提到的“旧式”项目
-
您说“现在我切换到 PackageReference 格式(删除了 packages.config)”——听起来您将项目转换为 SDK 样式。你的意思是你使用的是老式 csproj 的一些奇怪的混合,但是在那里使用了一些 SDK 风格的项目的选择位?这听起来很可怕,请不要这样做。直接转换成 SDK 风格的项目
-
@canton7 为什么我不应该这样做。甚至 Visual Studio 本身也在 packages.config 和 References 节点的上下文菜单中提供了“迁移到 PackageReference”选项?
-
@FranzGsell,有关于这个问题的最新消息吗?
标签: c# visual-studio msbuild nuget nuget-package