.net core项目部署Linux服务器时出现SDK版本问题解决方案(2步解决)
问题描述:
[root@localhost GDSM4.1.002]# dotnet GDSMPlateForm.dll
Error:
An assembly specified in the application dependencies manifest (GDSMPlateForm.deps.json) was not found:
package: 'Microsoft.ApplicationInsights.AspNetCore', version: '2.1.1'
path: 'lib/netstandard1.6/Microsoft.ApplicationInsights.AspNetCore.dll'
This assembly was expected to be in the local runtime store as the application was published using the following target manifest files:
aspnetcore-store-2.0.0-linux-x64.xml;aspnetcore-store-2.0.0-osx-x64.xml;aspnetcore-store-2.0.0-win7-x64.xml;aspnetcore-store-2.0.0-win7-x86.xml
查找原因(网上找资料):
Windows就没有这么麻烦了,安装Windows Server Hosting就可以了,微软已经为你打包好了.Net Core Runtime和ASP.Net Core Runtime
解决办法(2步):
1、发布时指定SDK版本
在项目的根目录打开cmd,执行命令即可:
dotnet new global.json --sdk-version <SDK版本号>
注意:最后的参数是SDK版本,不是.NET Core 版本
2、修改发布配置文件
在<PropertyGroup>节点增加 <PublishWithAspNetCoreTargetManifest>false</PublishWithAspNetCoreTargetManifest>
缺点和不足:这样发不完可以在Linux指定版本上正常运行,但是缺点是发布包的包体大小有差别,所以最好还是升级服务器环境版本(和开发环境一致)
其实文件个数就能看出来,其实是后者包里包含很多之前依赖的包
总结:喜欢这个找问题的过程,记录一下
本文来自博客园,作者:汪小让,转载请注明原文链接:https://www.cnblogs.com/wangxiaorang/p/15117735.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构