6

我們連續交付建立,直到最近,使用下面的命令提供服務織物包解決方案級別即命令命令行包服務織物應用

msbuild SFSolution.sln /t:Package 

失敗,因爲目標不存在。

隨着我們的依賴關係網格的增長,它達到了沒有解決方案文件(to work around the "OutputPath does not exist" red herring)時大多數接口項目都無法生成的程度。似乎有一種方法可以做到這一點according to this answer。不幸的是,而像清潔工作目標......

msbuild SFSolution.sln /t:SFApplication:Clean 
(…snip…) 
Build succeeded. 
    0 Warning(s) 
    0 Error(s) 

...目標包不會!

msbuild SFSolution.sln /t:SFApplication:Package 
(…snip…) 
Build FAILED. 
"SFSolution.sln" (SFApplication:Package target) (1) -> SFSolution.sln.metaproj : 
     error MSB4057: The target "SFApplication:Package" does not exist in the 
     project. [SFSolution.sln] 
    0 Warning(s) 
    1 Error(s) 

(解決方案/項目文件夾/名稱省略/改寫爲清楚起見,如果需要的話我可以提供實際的日誌。)

所以現在的問題是:我怎麼可能,使用命令行,打造一個項目使用目標和解決方案文件?

我該如何從命令行打包Service Fabric應用程序?

回答

1

MSBuild僅支持可在解決方案級別指定的一小組目標名稱。正如你發現的那樣,Package不是其中之一。您需要對MSBuild執行兩個單獨的調用:一個調用解決方案,另一個調用sfproj上的Package對象。 sfproj的Package目標對Build目標具有依賴性,因此它將確保構建sfproj及其項目依賴關係。

+0

這不起作用。如果我一個接一個跑完一個,就沒有變化。請參閱http://pastebin.com/uMjdSJ1Q行:[1]構建CLI [296]程序包CLI [542]第一個OutputPath錯誤[629]上一個錯誤 – Ekevoo

+3

根據構建輸出,您的解決方案配置配置爲使用AnyCPU。 .sfproj及其引用的項目被配置爲使用x64。您需要適當更新解決方案配置。 –

+0

當我這樣做時仍存在同樣的問題。 http://pastebin.com/k8jzm853 – Ekevoo

0

我遇到了同樣的問題,並通過更改失敗項目中的Platform來明確構建x64來修復它。

單擊Build>Configuration Manager並確保爲x64平臺編譯程序集,還應該在相應的.csproj文件中設置輸出路徑。 enter image description here

正在執行的實際命令行操作是這樣的:

"C:\Program Files (x86)\MSBuild\14.0\bin\amd64\msbuild.exe" "C:\agent\_work\1\s\Project\SFProject.sfproj" /t:Package /p:platform="x64" /p:configuration="release" /p:VisualStudioVersion="14.0"

0

,你有我們有完全相同的問題,我一直在四處尋找一個解決方案都在網上和做了一些實驗。這些是我們工作的步驟:

  1. 請勿在StackOverflow上的其他答案中建議的任何位置手動添加目標。不必要。特別是在CI環境中,您想要單獨構建項目。
  2. 準備項目,在解決方案:更改目標平臺爲所有項目到x64
  3. 生成應用程序

msbuild.exe SFAplication.xproj /p:Configuration=Release /target:rebuild

  • Package中的應用
  • msbuild.exe SFAplication.sfproj /p:Configuration=Release /target:Package

    1

    使用bel ow腳本。

    C:\ Program Files文件(x86)的\微軟的Visual Studio 14.0>的MSBuild 「Fabric.sfproj」/ T:包裝/ P:配置=釋放

    服務結構需要的目標在x64平臺設置, 因此,將所有參考項目的目標更改爲x64平臺。

    您可以通過使用解決方案的配置屬性來完成此操作。如果x64未在「配置屬性」中列出,請在所需項目的同一窗口和平臺列下單擊配置管理器,然後將新項目平臺添加爲x64。

    希望這對你有用。