2011-03-24 52 views
3

我們有許多使用MSBuild構建的標準.vcxproj文件。對於某些屬性和目標,我們需要一個.vcxproj.user文件來覆蓋特定於正在進行的構建的屬性。MSBuild:覆蓋.user文件的路徑

爲了在開發環境中使用與構建機器相同的構建過程,我們希望將.vcxproj.user的路徑指定爲與.vcxproj文件不同的目錄,因此構建過程可以生成它的文件需要在一個單獨的目錄中,而不會影響用戶自己的設置。

我發現msbuild查找.user文件的地方很少,或者甚至可以指定路徑?

回答

4

路徑*爲CPP項目。用戶文件中C的規定:\ Program Files文件\的MSBuild \ Microsoft.Cpp \ V4.0 \ Microsoft.Cpp.Default.props

<MSBuildAllProjects Condition="Exists('$(MSBuildProjectFullPath).user')">$(MSBuildAllProjects);$(MSBuildProjectFullPath).user</MSBuildAllProjects> 

它的目的指定自定義用戶設置(例如,您可以指定應用程序在調試中運行)並且無法更改。

要更改構建過程,您可以使用CustomBeforeMicrosoftCommonTargets。您可以創建自己的* .targets文件,該文件將導入特定的屬性/目標,更改構建過程以進行一些預處理操作等。我爲AfterTargets here寫了一個例子。您只需要實現自定義構建邏輯並將註冊更改爲BeforeTargets。