2010-07-26 101 views
0

找到了一篇文章(Extend the Visual Studio Build Process),解釋瞭如何覆蓋C#項目文件中的構建目標。我測試了這一點,它似乎運作良好。不過,我真正想要做的是在C++項目中重寫構建目標(使用Visual Studio 2005)。問題是C++項目使用不同的XML。而不是以<project>爲根,C++項目以<VisualStudioProject>爲根。當我<target>標籤添加到C++項目文件,並嘗試打開Visual Studio中的項目,我得到這個錯誤:擴展Visual Studio C++構建過程

The following error has occurred during XML parsing:

File: [Path to Project File].vcproj Line: 304 Column: 30 Error Message: Element 'Target' is unexpected according to content model of parent element 'VisualStudioProject'.

The file '[Path to Project File].vcproj' has failed to load.

我如何可以覆蓋一個C++項目的Visual Studio構建目標?還是有更好的方法來定製C++構建過程中發生的情況?

回答

1

在Visual Studio 2005中,C++構建沒有構建「目標」,因爲C++構建系統不使用MSBuild。

然而,VC++ 2005定義了預建前鏈路生成後活動以及添加自定義生成非標準文件步驟的能力。

您可以使用這些設置實現您想要的功能。

注:

  • VC++ 2005個項目可使用的MSBuild建成,它只是沒有什麼Visual Studio中做開箱。
  • Visual Studio 2010對所有項目類型都使用MSBuild。
+0

不幸的是,我想修改「Clean」構建。我認爲我無法實現我想要的預生成,預生成和生成後生成,因爲這些生成的所有時間都在運行。除非有辦法根據構建類型設置條件構建步驟,否則看起來我可能會被卡住。 – Brian 2010-07-26 15:28:06