【发布时间】:2020-05-06 09:35:15
【问题描述】:
尝试将项目从 .net core 2.2 迁移到 3.1。在本地调试中,整个应用程序正常工作。我试图在 IIS 上发布我的应用程序。发布后,我转到站点 url 并查看错误:
错误 500.31 - ANCM 无法在 IIS 中查找本机依赖项
此问题的常见解决方案: 未找到指定版本的 Microsoft.NetCore.App 或 Microsoft.AspNetCore.App。
ANCM 检测到的具体错误: 遇到致命错误。在
中找不到执行应用程序所需的库“hostpolicy.dll”
dotnet --info 命令结果:
所有项目都有目标框架.netcoreapp 3.1,库是.netstandart 2.0。
我已经尝试重新安装 SDK,Visual Studio 2019。我已经将与 Microsoft 连接的每个 nuget 包从 2.2 更新到 3.1.1。
还安装了托管包 3.1.1。任何想法如何解决这个问题?
UPD。发布命令:
dotnet publish $projectPath -m --no-build -c:$publishConfiguration -o $destinationPath -v q -r $targetPlatform /p:EnvironmentName=$publishEnvironment --self-contained false;
目标平台 = win-x64。主机型号为InProgress。
UPD 2.dotnet list package 解决方案的结果:https://gist.github.com/AndreiKhotko/60aafeb42566ac3e3fadfab2d0209dde
UPD 3.ASP.NET Core Diagnostics 生成的报告:https://gist.github.com/AndreiKhotko/2a193b4121c4399e0a00bfef708140da
UPD 4. 抱歉,我没有指定完整的错误消息。这是它的最后一部分(第一部分见上文):
无法作为独立应用运行。如果这应该是一个 依赖框架的应用,在 '*.runtime.config' 中指定适当的框架。
*.runtime.config的内容:
{
"runtimeOptions": {
"tfm": "netcoreapp3.1",
"includedFrameworks": [
{
"name": "Microsoft.NETCore.App",
"version": "3.1.1"
},
{
"name": "Microsoft.AspNetCore.App",
"version": "3.1.1"
}
],
"configProperties": {
"System.GC.Server": true
}
}
}
【问题讨论】:
-
您能在解决方案目录中创建
dotnet list package并创建结果要点吗? -
@MartinFrøhlich 当然。我会在更新问题后通知您
-
@MartinFrøhlich 看看。现在我看到有版本为
16.0的包.net Tests。似乎这些参考文献破坏了出版。我稍后会检查它 -
@JalpaPanchal 将模块更改为
AspNetCoreModule不是一个好主意。事件查看器显示相同的错误。他们的描述毫无用处 -
请从发布命令中删除
--self-contained false。为什么要在选择 win-x64 时禁用它?这只会使生成的二进制文件不一致。
标签: c# asp.net-core iis .net-core