我有一个较旧的 Web 项目,于 2017 年开始,最近使用
upgrade-assistant
程序升级为 SDK 风格的项目。 对于较旧的项目格式,我曾经在 IIS(而不是 ISS Express)中进行调试。 但现在项目属性中的整个Web菜单选项卡丢失了。这是以前的位置:
我现在知道其中一些设置已移至名为
launchSettings.json
的新文件中。 这是我当前在新的 SDK 样式项目中的文件中的内容:
{
"profiles": {
"Run In IIS": {
"environmentVariables": {
"DOTNET_ENVIRONMENT": "Development"
},
"commandName": "IIS",
"launchBrowser": true,
"launchUrl": "http://localhost"
}
},
"iisSettings": {
"windowsAuthentication": true,
"anonymousAuthentication": true,
"iis": {
"applicationUrl": "http://localhost",
"sslPort": 0
}
}
}
我遇到的问题是,当我尝试在我的项目上调试并运行此配置文件时,我收到一条错误消息:
Unable to run your project. The "RunCommand" property is not defined.
现在,在说“将项目输出类型设置为 Windows 应用程序或控制台应用程序”之前,该 Web 项目的输出类型始终设置为库。 更改它只会在寻找入口点时产生编译时错误。 以下是旧 .csproj 中的项目类型指南(如果它清除了任何内容)
<ProjectTypeGuids>{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>
。它从未被编译为 EXE。升级助手在这方面让我陷入困境。 一定有一些我不知道的神奇属性或设置允许我在 IIS 中调试而不会抛出那个愚蠢的错误。
我有一个 .NET Framework 4.8.1 WebAPI 项目,我还使用了新的 SDK 项目文件结构。我一直在尝试使用托管在 IIS 上的 Owin。我也遇到了同样的问题 这就是为我解决的。我将其添加到项目文件中:
<OutputType>Library</OutputType>
<OutputPath>bin\</OutputPath>
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
<RunCommand>$(MSBuildExtensionsPath64)\..\IIS Express\iisexpress</RunCommand>
<RunArguments>/path:"$(MSBuildProjectDirectory)" /port:18082</RunArguments>