该库' hostpolicy.dll'执行应用程序所必需的

时间:2017-07-17 10:14:32

标签: c# .net-core

添加log4net后,我在发布时通过dotnet命令得出以下错误消息(IIS发出500错误)。

  

遇到致命错误。该库' hostpolicy.dll'在MonPath'

中找不到执行应用程序所需的操作

框架:.Net CoreApp 1.1

在VS2017的调试模式下,应用程序正在运行。

在我的.csproj中:

  

PackageReference Include =" Microsoft.NETCore.DotNetHostPolicy"版本=" 1.1.2"   PackageReference Include =" Microsoft.AspNetCore"版本=" 1.1.2"   TargetFramework netcoreapp1.1

我为project.json找到了这个解决方案,但是如何将它应用到.csproj?

  

" compilationOptions":{         " emitEntryPoint":true     }

5 个答案:

答案 0 :(得分:3)

在VS2015中无法发现或执行单元测试时遇到类似问题。如果我在CMD提示符中运行命令,则会得到与上面相同的错误。

无法在互联网上找到解决方案花了一天时间才发现我需要将以下内容放在project.json文件中

"runtimeOptions": {
  "framework": {
    "name": "Microsoft.NETCore.App",
    "version": "1.0.0"
  }
},

这会导致在应用程序的构建的Debug目录中创建{app} .runtimeconfig.json文件。

这一切都是因为我安装了DotNetCore 2 Preview。

将此置于此处是因为它是谷歌搜索中最受欢迎的第二名,希望有需要的人能够找到它。

答案 1 :(得分:0)

我好像是.net核心版本问题。在我的VS项目自动升级到.NET Core 1.1.2后,我在生产服务器上遇到了同样的问题。

我只是在我的生产服务器上安装了1.1.2 .net核心运行时:https://www.microsoft.com/net/download/core#/runtime

答案 2 :(得分:0)

对于最新的csproj格式(vs 2017),您需要在csproj文件中添加RuntimeIdentifier元素:

<RuntimeIdentifiers>win10-x64;osx.10.11-x64;ubuntu.16.04-x64</RuntimeIdentifiers>

<RuntimeIdentifier>win7-x86</RuntimeIdentifier>
顺便说一下,您可能需要恢复nuget包以避免project.assets.json中的断言错误 ASP.NET Core Application (.NET Framework) for Windows x64 only error in project.assets.json

答案 3 :(得分:0)

尝试从路径中运行.exe时出现此错误:

[myProjectPath]\obj\Debug\netcoreapp3.1

代替路径:

[myProjectPath]\bin\Debug\netcoreapp3.1

以防万一有人犯同样的错误。

答案 4 :(得分:0)

对于我的.net Core 3.1应用程序,“发布”文件夹中缺少一些文件,例如

  • ' .deps.json'
  • ' .runtimeconfig.json'

和其他一些。 好吧,这是因为我将一个控制台项目添加为对另一个控制台项目的依赖。对于依赖项目,文件丢失。 这引起了异常。 这些文件是“依赖于框架的”应用程序所必需的,否则将以“自包含”的身份运行,并将在“ C:\ Program Files \ dotnet”文件夹中搜索“ hostpolicy.dll”,由于任何原因该文件都不存在原因。 enter image description here