2017-09-27 26 views
1

我在Visual Studio Team Services(a.k.a. Visual Studio Online?我不太確定它的名字是否正確)沒有生成工件,我真的不知道爲什麼。解決方案文件中的主要項目是使用TopShelf構建的Windows服務。我懷疑Visual Studio構建任務中的MSBuild參數可能是錯誤的。我從正在工作的MVC項目的構建定義中複製了它們,但是我發現它們可能不適用於Windows服務。如何讓我的Windows服務解決方案使用VSTS Build生成工件?

在這裏,他們是:

/p:DeployOnBuild=true 
/p:WebPublishMethod=Package 
/p:PackageAsSingleFile=true 
/p:SkipInvalidConfigurations=true  
/p:PackageLocation="$(build.artifactstagingdirectory)\\" 

我有一個複製文件的任務和發佈以後生成工件任務的過程中,但顯然$(build.artifactstagingdirectory)\\是空的。我收到此警告:

## [警告]目錄'd:\ a \ 1 \ a'爲空。沒有什麼會被添加到構建神器

奇怪的是,在我發佈符號的過程中的另一個任務,一切似乎順利結束。

還有一點:我正在使用託管構建代理。不知道這件事是否重要。

這就是我能想到的所有相關信息。我在這裏基地?我過去使用過Octopus Deploy,我知道我必須在我的服務上安裝Octopack。我需要在這裏做類似的事嗎?

回答

1

你不需要任何這些MSbuild參數;其中大部分適用於ASP .NET項目,並且對控制檯應用程序無效。

全部替換爲/p:OutDir=$(Build.ArtifactStagingDirectory)。這將告訴MSBuild將構建輸出放入工件登臺目錄中。

+0

是的,就是這樣。如果我可能會問一個後續問題,你是怎麼知道的?在查找MSBuild參數時,我的Google-fu顯然缺乏,我希望將來有一個參考。 – FishBasketGordo

相關問題