2008-08-19 97 views
2

我有幾個項目的解決方案,其中啓動項目具有生成後事件,可以完成「插件」項目和其他組織任務的所有複製。將解決方案從VS 2005升級到VS 2008後,似乎只有在修改啓動項目時纔會觸發生成後事件,這意味着我的更新插件不會插入當前調試會話。這是有道理的,但它看起來像行爲的變化。其他人是否注意到哪些項目的建設行爲發生了變化?我可以配置VisualStudio 2008以始終構建啓動項目嗎?

有沒有人知道我可以用來強制啓動項目重建每當我打F5的解決方法?也許我配置VS 2005在很久以前就以這種方式工作,以至於我忘記了所有關於它的事情......

回答

3

爲什麼不只是添加一個依賴到「啓動」項目中爲每個插件?這將迫使項目在任何其他項目發生變化時進行重建,並且不必混淆其他任何預先/後期構建事件。

2

我不知道這是否正確,但可以將預構建事件添加到您的啓動projcet(如果它是靜態的)清理將強制重建的項目。

類似:

devenv project.csproj /clean 
5

我認爲你需要重新組織責任。每個組件都應該對自己負責,因此可以將其生成的好處複製到需要的地方。這樣,無論誰/什麼/何時/何地建成,都無關緊要。無論什麼更新將把自己放到適當的地方。


IMO其他建議是無號,因爲他們會繞過編譯器的智慧,知道什麼時候重建的主要項目是必要的。因此可以節省任何編譯時間。如果您的「插件」項目是程序集(而不僅僅是來自主項目的項目引用),則每次插件重建時都不需要重新構建主項目。新的程序集將被選入進程/調試程序而不需要重建的主項目。

2

這是一種痛苦。我們真正需要的是微軟允許我們進入Post-Solution Build事件。你可以通過宏來完成,但這太複雜了。

我假設這是一個C++項目,因爲我沒有C#這個問題。

這是我的解決方案,它不是優雅,但它的工作原理:

  • 創建一個新的項目,其唯一目的是運行構建後腳本。將其標記爲依賴於解決方案中的每個其他項目。
  • 將一個虛擬文件添加到該項目稱爲dummy.h或任何。
  • 右鍵單擊解決方案資源管理器中的dummy.h,然後選擇屬性。
  • 選擇「自定義生成步驟」。
  • 對於命令行類型'echo'和輸出只是鍵入'dummy'或其他永遠不會存在的內容。

這個項目,因此後生成腳本,現在將運行在每個構建。

John。

1

flipdoubt:它們是2008年創建的項目。我的建議是,如果它不工作C#是查看Build Events選項卡並檢查「Run the post-build event:」下拉菜單的設置。如果它被設置爲'當構建更新項目輸出',這可能是你的問題,嘗試設置'在成功構建'。

John。

1

我在這裏有同樣的問題,這是非常惱人的。 John Richardson說得對,應該有一個Post-Solution Build事件(和一個Pre-Solution Build事件),只要解決方案中的任何項目正在構建,就會生效。

我不認爲有什麼好的解決方法可以在當前的VS 2008 IDE中獲得這個結果。

0

從@lomaxx建議開始,我有一個非常類似的設置中加入下面一行在結束工作後建立活動的啓動項目:

"$(DevEnvDir)devenv.exe" "$(ProjectPath)" /clean 

注意,這使啓動項目建立下一個時間你需要調試,所以你應該確保該項目建設至少一次。

PS。我最初嘗試按照建議進行預生成,但這並不奏效(我認爲這很有道理 - 如果VS認爲項目不需要構建,則不會執行該項目的任何事件)。

相關問題