【问题标题】:The library 'hostpolicy.dll' was not found找不到库“hostpolicy.dll”
【发布时间】:2020-08-03 15:21:44
【问题描述】:

在我的 ASP.NET WebAPI(不是 Core!)项目中,我想使用基于 SDK 的 csproj 格式。我转换了项目并构建它:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>net461</TargetFramework>
    <OutputType>Library</OutputType>
  </PropertyGroup>

现在当我使用 IIS Express 运行它时,我得到:

正在等待 IIS Express 工作进程启动……

工作进程已启动:22108

遇到致命错误。在“C:\Code\MyWebApp\MyWebApp\bin\Debug\net461\”中找不到执行应用程序所需的库“hostpolicy.dll”。

无法作为独立应用运行。如果这应该是依赖于框架的应用程序,请添加 C:\Code\MyWebApp\MyWebApp\bin\Debug\net461\MyWebApp.runtimeconfig.json 文件,指定适当的框架。

我看到this answer 提出了一个类似的问题,该问题建议添加一个 .runtime.config 文件,但我相信它仅对 .NET Core 应用程序是必需的。

此时我不想迁移到 .NET Core。我想要的只是使用新的项目格式来摆脱一些讨厌的绑定重定向。 IE。我只想更改我的构建工具并在运行时保留所有内容。

我的launchsettings.json:

{
  "$schema": "http://json.schemastore.org/launchsettings.json",
  "iisSettings": {
    "windowsAuthentication": false,
    "anonymousAuthentication": true,
    "iisExpress": {
      "applicationUrl": "http://localhost:59119",
      "sslPort": 0
    }
  },
  "profiles": {
    "IIS Express": {
      "commandName": "IISExpress",
      "launchBrowser": true
    }
  }
}

这些是我所做的更改:Pull request

【问题讨论】:

  • 这正是微软没有浪费时间将这些旧项目类型转换为新项目格式的原因。

标签: asp.net-web-api csproj


【解决方案1】:

ASP.NET 团队有responded:

这是不可能的,基于 sdk 的项目不适合传统的 aspnet/webapi 项目,如果您尝试使用它们,您可能会看到很多问题。

我已经很接近让它工作了!

【讨论】:

    猜你喜欢
    • 2016-10-31
    • 1970-01-01
    • 2017-12-21
    • 1970-01-01
    • 2017-02-02
    • 2018-08-22
    • 2018-07-24
    • 2014-12-13
    相关资源
    最近更新 更多