2015-04-02 89 views
0

有沒有辦法在Visual Studio 2013中指定像/ p:option = value這樣的msbuild開關?Visual Studio 2013和MSBuild命令行開關

+0

Visual Studio中不運行'MSBuild.exe',所以它不能以這種方式傳遞開關。您可以通過直接編輯MSBuild項目文件來獲得所需的結果。 – paul 2015-04-02 09:13:37

+1

這有點含糊。也許如果你準確地指定了哪些開關(編譯器選項?其他構建選項?自定義變量定義?),則有適當的答案。 – stijn 2015-04-02 09:51:36

+0

我在我的項目文件中有一個屬性,我打算用switch/p傳遞給它的值來覆蓋它:...或類似的東西。更改項目文件不是一個選項。 – toppless 2015-04-02 14:45:12

回答

1

正式從上面評論我的評論。

一個可能的解決方案可能是讓目標文件(例如VisualStudioOverrides.targets)定義要覆蓋的屬性及其值。然後,如果該文件存在,則csproj文件將導入它,從而覆蓋相關屬性。 這樣一個import語句應放置在文件的csproj(之後被覆蓋的屬性被定義)的底部,並會看起來像:

<Import Project="$(MSBuildProjectDirectory)\VisualStudioOverrides.targets" Condition="Exists('$(MSBuildProjectDirectory)\VisualStudioOverrides.targets')" />