2013-10-24 77 views
1

我在舊的解決方案中完成了一項工作。我已經爲此解決方案添加了一個新項目。對於這個解決方案,我們必須使用Visual Studio 2008,並且沒有項目可以具有比2.0更新的.Net框架(因爲它安裝的服務器有限制)。在VS2008中有沒有辦法將MSBuildBinPath設置爲用於新項目?

即使解決方案建立在我的機器上,我們仍然需要手工編輯項目(.csproj)文件中設置專門一個屬性:

<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />

(當我加入這個項目這是自動生成的)需求要改變以

<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />

方便一些神祕的構建設置,沒有人誰正在這裏瞭解或想觸摸。

this question/article我發現:

$(MSBuildToolsPath)是特定版本替換爲$(MSBuildBinPath)。舊的屬性仍然可用,但應該棄用。創建項目時,VS2008將使用較新的路徑。在VS2005之前,使用了較舊的路徑。當您將項目從VS2005升級到VS2008時,它不會修改路徑。

這是否意味着在此構建腳本中MSBuildBinPath的路徑是硬編碼的?

手動更改此錯誤容易出錯,容易忘記(it-build-on-my-machine效果)。有沒有辦法將它設置在VS2008的某個位置,這樣該解決方案的新項目默認會在.csproj文件中獲得舊屬性?

回答

1

您是否嘗試過在生成服務器上安裝.net 3.5和VS2008?也許,你的構建服務器上只有.net 2.0和msbuild 2.0可用。

我只看到1個選項來完成您描述的內容:使用自定義項目模板。我相信這很容易完成(因爲有一個tutorial,你只需要對默認模板稍作修改)。

+0

+1引導我走向項目模板。看起來很有希望。當我有機會時,我也會檢查構建服務器。 – Halvard

+0

構建服務器確實安裝了「.net 3.5」和「VS2008」。我認爲你對項目模板的建議是最好的選擇。謝謝! – Halvard

+0

(如果幾天內沒有人提供更好的東西,我會給你正確的答案檢查) – Halvard

相關問題