Visual Studio 不断将 IIS Express 添加回我的 launchsettings.json

Visual Studio keeps adding IIS Express back into my launchsettings.json

我正在尝试从我的 .NET Core 启动设置中删除 IIS Express 配置文件,但每次我重新使用该解决方案时,Visual Studio 都会再次将其添加回去。例如,在一个新项目中,我的启动设置如下所示

{
  "iisSettings": {
    "windowsAuthentication": false,
    "anonymousAuthentication": true,
    "iisExpress": {
      "applicationUrl": "http://localhost:55735/",
      "sslPort": 0
    }
  },
  "profiles": {
    "IIS Express": {
      "commandName": "IISExpress",
      "launchBrowser": true,
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    },
    "MyProject": {
      "commandName": "Project",
      "launchUrl": "http://localhost:5010",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    }
  }
}

我删除了 IIS 部分

{
  "profiles": {
    "MyProject": {
      "commandName": "Project",
      "launchUrl": "http://localhost:5010",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    }
  }
}

解决方案运行良好。但是只要我关闭并重新打开解决方案,IIS 部分就会重新出现。

有什么想法吗?

更新:

Visual Studio 2017(版本 15.3.0)的最新版本(更新)应该解决了这个问题。

初步回答:

这不是解决方案,而是一个丑陋的解决方法。我想如果我只是拒绝更改 launchsettings.json 文件的权限,这将防止 Visual Studio 每次都覆盖它。由于这个文件没有太大变化,对我来说或多或少是一个令人满意的解决方案。

所以:

  1. 最后一次更新你的launchsettings.json
  2. 关闭 Visual Studio.
  3. 打开安全设置(在资源管理器中右键单击 launchsettings.json -> 属性 -> 安全)
  4. 单击高级 -> 更改权限
  5. Select "Authenticated Users"(或您计算机上 Visual Studio 在其下的其他用户组 运行)从 "Permissions entries" 列表中单击编辑 ->
  6. 选中拒绝 "Create files / write data" 权限。
  7. 在所有打开的对话框和警告中单击“确定”以保存更改。
  8. 重新打开 Visual Studio 发现它无法进行更新。

希望对您有所帮助。

在我的案例中,问题与文件末尾缺少括号有关,因此 Visual Studio 无法处理它,请检查 JSON 格式是否正确。