MsDeploy 不会为运行 MSBuild 的项目打包和部署 XML 文件



我们使用MSDeploy将 ASP.NET Web Api部署到Web服务器。它是从 TeamCity 启动的,TeamCity 有一个 MSBuild 步骤来生成代码并部署它。
MsBuild 仅在我们的 Web API 项目上运行(我们称之为 WA(,而不是在整个解决方案上运行。我不知道它是否相关。我认为不是 - 看看为什么更低。
我们的API生成Swagger文档。问题是 - Swagger 找不到 WA 所依赖的一个项目(我们称之为 B(的 XML 文档。
当我在开发计算机上构建解决方案时 - Swagger 工作正常,没有错误。仅当我们从 TeamCity 部署到测试环境时,才会出现问题。
我调查并发现在构建过程中生成了丢失的文件,但 MsDeploy 不会打包并带过来。这就是为什么我认为 MsBuild on project vs solution 在这里不是问题.
我做的第一件事是为项目 B 和 WA 的每个配置添加<DocumentationFile>节点。这并没有多大帮助.
以下是我们在 TeamCity 上使用的 MsBuild 参数:/property:Platform=AnyCPU /property:DeployOnBuild=True /property:DeployTarget=MSDeployPublish /property:CreatePackageOnPublish=True /property:AllowUntrustedCertificate=True /property:MSDeployPublishMethod=WMSvc /property:SkipExtraFilesOnServer=False /property:DeployIisAppPath=OurApiName.它们是相当标准的。
我们还通过系统属性提供了一些其他参数 - 配置,用户名,密码,MsDeployServiceUrl.
我确实尝试了此解决方案,但问题仍然存在。

如果其他人遇到这个 - 我根据本文修改我的 .csproj 文件解决了这个问题。
起初无法让它工作,但后来我尝试了我能想到的所有路径组合,其中一个有效。小心前导斜杠

最新更新