为什么 Web 部署后 Visual Studio 2015 更改 web.config?

Why Visual Studio 2015 changes web.config after web deploy?

当我在 Visual Studio 2015 年进行本地发布时。它发布了 web.config,其中包含:

  <httpPlatform processPath="..\approot\web.cmd"/>

网站正常运行。但是当我进行网络部署时,它会发布 web.config 其中包含:

 <httpPlatform processPath="%home%\site\approot\web.cmd" />

,网站无法找到 web.cmd,无法正常工作。我如何通过 Web 部署在 web.config 中发布带有字符串“..\approot\web.cmd”而没有 %home% 的项目?

您可以找到一些有用的信息here

When Visual Studio deploys an ASP.NET Core app to Azure App Service, it sets an environment variable called DNU_PUBLISH_AZURE to 1 before calling dnu publish. This tells dnu publish to fill in the correct values, which are:

<httpPlatform processPath="%home%\site\approot\web.cmd" arguments="" stdoutLogEnabled="false" stdoutLogFile="\?\%home%\LogFiles\stdout.log" startupTimeLimit="3600"></httpPlatform>

为变量设置值 0 或 false DNU_PUBLISH_AZURE 返回正常路径。

Azure 环境在字符串中发布配置文件的 pubxml 中打开:

<_DestinationType>AzureWebSite</_DestinationType>

在我的例子中,我应该删除这个字符串。