2017-08-11 57 views
0

我們使用MSDeploy將ASP.NET Web Api部署到Web服務器。它從TeamCity啓動,它有一個構建代碼並部署它的MSBuild步驟。
MsBuild僅在我們的Web API項目上運行(讓我們稱之爲WA),而不是整個解決方案。我不知道這是否相關。我認爲這不是 - 看看爲什麼降低。
我們的API生成Swagger文檔。問題是 - Swagger無法找到WA所依賴的其中一個項目(讓它稱爲B)的XML文檔。
當我在開發機器上構建解決方案時,Swagger可以正常工作,沒有錯誤。問題僅出現在我們從TeamCity部署到測試環境時。
我調查了一下,發現在構建期間生成了缺少的文件,但是MsDeploy不會打包並將其結束。這就是爲什麼我認爲MsBuild項目vs解決方案在這裏不是問題。
我做的第一件事是爲項目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提供了一些其他參數。
我嘗試過this solution,但問題仍然存在。MsDeploy將不打包和部署XML文件的項目,然後運行MSBuild

回答

0

如果其他人打這個 - 我通過修改我的.csproj文件according to this article解決了這個問題。
最初無法讓它工作,但後來我嘗試了所有可以想到的路徑組合,以及其中一種工作方式。小心斜線

相關問題