将旧的 Web 项目升级为新的 SDK 样式项目格式,现在我无法调试

问题描述 投票:0回答:1

我有一个较旧的 Web 项目,于 2017 年开始,最近使用

upgrade-assistant
程序升级为 SDK 风格的项目。 对于较旧的项目格式,我曾经在 IIS(而不是 ISS Express)中进行调试。 但现在项目属性中的整个Web菜单选项卡丢失了。这是以前的位置:

enter image description here

我现在知道其中一些设置已移至名为

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.

enter image description here

现在,在说“将项目输出类型设置为 Windows 应用程序或控制台应用程序”之前,该 Web 项目的输出类型始终设置为库。 更改它只会在寻找入口点时产生编译时错误。 以下是旧 .csproj 中的项目类型指南(如果它清除了任何内容)

<ProjectTypeGuids>{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>
。它从未被编译为 EXE。升级助手在这方面让我陷入困境。 一定有一些我不知道的神奇属性或设置允许我在 IIS 中调试而不会抛出那个愚蠢的错误。

visual-studio debugging iis
1个回答
0
投票

我有一个 .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:&quot;$(MSBuildProjectDirectory)&quot; /port:18082</RunArguments>
© www.soinside.com 2019 - 2024. All rights reserved.