2009-12-09 142 views
3

我仍然試圖闡明cobol項目中需要cobol編譯器的項目。MSBuild:有條件的構造(項目參考|文件參考)

是否有可能產生以下構建行爲:

如果配置調試,然後使用上ExCobol.cblproj ProjectReferences如果配置DebugVB然後ExCobol.dll

如果是,如何使用FileReferences實現它?

我假設在項目文件中使用標籤將 做竅門。

這是否真的消除了編譯器對 DebugVB配置的需求?

回答

5

關於有條件的 '如何',假設你要麼

<ProjectReference ...>...</ProjectReference> 

<Reference ...>...</Reference> 

要手工編輯.proj文件,包括正是如此

<ProjectReference Condition="'$(Configuration)'!='DebugVB'" ...>...</ProjectReference> 
<Reference Condition="'$(Configuration)'=='DebugVB'" ...>...</Reference> 
+0

問題的答案至少有一部分。 猜猜我必須自己嘗試休息。 無論如何,謝謝! – 2009-12-14 10:19:54

+0

爲晚會來臨,但我發現自己做了類似的事情,從直接的MSBuild角度來看,這很好。基於構建配置正確編譯。但是,我在VS2010中遇到過一些奇怪 - 例如,項目瀏覽器中的引用總是看起來像彙編引用。另外,Build-Order不會自動計算出來。我假設這是因爲VS似乎認爲,即使條件規定了ProjectReference,它也是一個Assembly Reference。 – Yoopergeek 2010-12-29 13:46:55

+0

@Yoopergeek - 我正在體驗Assembly vs Project Reference。你能解決嗎? http://stackoverflow.com/questions/10738246/buildinginsidevisualstudio-property-value-not-working-with-file-reference-and-pr – kevindaub 2012-05-29 13:18:14

0

幾乎忘了這個問題: Brian的答案完全適合我。

並回答問題的第二部分:

它的確消除了對每一個maschine如果你 設置不同的配置需要一個COBOL編譯器。

謝謝Brian。