为什么 webdeploy 不发送我的静态 HTML 文件?

Why isn't webdeploy sending across my static HTML file?

我有一个 ASP.NET 应用程序,它分为两个子项目:一个静态 Web 前端和一个 API 层。这些是单独构建和部署的。

我们正在使用 MSBUILD 和 Web Deploy 将构建发送到我们的 QA 服务器,并且除了静态 HTML 之外的所有内容都被正确复制。它从不包含在包中。

这是简化的项目结构:

/javascript
/img
/lib
bower.json
gruntfile.js
index.html
package.json
Web.csproj
Web.config

这是执行实际部署的命令行:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe ^
    Project\Web.csproj ^
    /target:Rebuild ^
    /p:DeployIisAppPath=project-web ^
    /p:SiteAppName=project-web ^
    /p:Configuration=QA ^
    /p:OutputPath=package ^
    /p:DeployOnBuild=True ^
    /p:DeployTarget=MSDeployPublish ^
    /p:MsDeployServiceUrl=https://server:8172/msdeploy.axd ^
    /p:username=BUILDUSER ^
    /p:password=******** ^
    /p:AllowUntrustedCertificate=True ^
    /p:MSDeployPublishMethod=WMSvc

部署运行后,目标服务器上的结果如下:

/bin
/javascript
/img
/lib
bower.json
gruntfile.js
package.json
Web.config

如您所见,index.html 文件丢失。所有其他资产 - JavaScript、CSS、图像 - 都存在。

正在使用的工具:

经过大量挖掘,我发现了这个问题。该文件不仅必须包含在项目中,而且还必须将其 Build Action 设置为 Content。它已被设置为 None.