【发布时间】: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
【问题讨论】:
-
这正是微软没有浪费时间将这些旧项目类型转换为新项目格式的原因。