将所有依赖项从 .Net 标准库复制到 .Net Framework Console 应用程序
Posted
技术标签:
【中文标题】将所有依赖项从 .Net 标准库复制到 .Net Framework Console 应用程序【英文标题】:Copy all dependencies from .Net Standard libraries to .Net Framework Console application 【发布时间】:2021-12-12 00:25:11 【问题描述】:在 .net framework(4.6) 控制台应用程序中使用 .net 标准项目后,.net 标准项目的依赖项不会复制到输出目录中。这会导致缺少 dll 的运行时错误。对于引用的项目,“复制本地”属性已经为真。一种可能的解决方案是在控制台应用程序中再次添加所有依赖项,但这不是一个好主意。有没有更好的解决方案?
【问题讨论】:
【参考方案1】:在通过 Scott Hanselman 的 article 之后,下面的解决方案就像一个魅力。
在 .net 框架控制台应用程序的“.csproj”文件的第一个“PropertyGroup”标记中添加以下行
<RestoreProjectStyle>PackageReference</RestoreProjectStyle>
无需在控制台应用程序中再次添加 .net 标准项目的 nuget 依赖项。
【讨论】:
那篇 Hanselman 的文章很棒 - 感谢您的链接 可悲的是,将上述 xml 添加到我的 .csproj 会导致项目无法加载 对我来说,添加该行会导致 nuget 包不再显示在“管理 nuget 包”中。我可以通过将 packages.config 迁移到新的 PackageReference 格式来解决它:右键单击 packages.config 文件并选择“Migrate packages.config to PackageReference...”。【参考方案2】:另一个答案是发布项目:
dotnet publish -o path/to/output/folder
【讨论】:
以上是关于将所有依赖项从 .Net 标准库复制到 .Net Framework Console 应用程序的主要内容,如果未能解决你的问题,请参考以下文章
.net 标准是不是像 .net Core 一样跨平台? [复制]