Netcore 2.0 发布未复制 SDK dll

Posted

技术标签:

【中文标题】Netcore 2.0 发布未复制 SDK dll【英文标题】:Netcore 2.0 publish is not copying SDK dlls 【发布时间】:2017-12-29 14:13:49 【问题描述】:

我正在尝试使用 MSBUILD 发布 Netcore 2.0 应用程序。

发布的输出缺少所有 SDK dll,例如 Microsoft.AspNetCore.Hosting.dll(有很多),因此当我尝试使用 dotnet appname.dll 从命令行运行应用程序时,我收到错误消息找不到引用的dll...

我之前发布了其他应用程序(不是我创建的),并且发布复制了 dll,并且还有一个我没有的“refs”文件夹。 所以我很确定这是一个项目配置问题,但我已经搜索了几个小时,但没有关于我应该更改什么的信息。

【问题讨论】:

【参考方案1】:

原来在我的项目中有一个 nuget 参考,名为 Microsoft.AspNetCore.All...

由于某种原因卸载此参考解决了问题,现在发布输出包含所有 SDK dll

【讨论】:

Microsoft.AspNetCore.All 实际上是您应该拥有的唯一参考【参考方案2】:

ASP.NET Core dll 是包含在运行时和托管捆绑安装中的运行时存储的一部分,因此它们不需要包含在发布输出中。 (注意这里是change in the 2.1 timeframe)

要禁用 ASP.NET Core 运行时包存储,您可以在项目文件中进行设置:

<PropertyGroup>
  <PublishWithAspNetCoreTargetManifest>false</PublishWithAspNetCoreTargetManifest>
</PropertyGroup>

【讨论】:

以上是关于Netcore 2.0 发布未复制 SDK dll的主要内容,如果未能解决你的问题,请参考以下文章

未找到log4net .netcore 3.1方法

Nuget发布自己的DLL

在 C# 2.0 中编写 excel 文件而不使用任何第三方 dlls/interop/sdk

NetCore.App SDK 中 .Net Framework 依赖项的用途?

Unity 包装器中的 Cubemos 骨架跟踪 SDK,未找到 realsense2.dll,未找到 cubemos_engine.dll,未初始化 RealSense 管道!错误

发布时未调用具有 Telerik Kendo Grid Read 方法 ([DataSourceRequest]) 的 ASP.NET Core 2.0