我有一個包含4個項目和24個配置的C++解決方案。該項目爲cryptest
,cryptlib
,cryptdll
和dlltest
。然後是x86,x64,調試,發佈,DLL導出和DLL導入的部分交叉產品。如何控制批量生成的順序→全部生成
有一種不太明顯的依賴關係,我似乎無法在UI下表示或手動修改項目文件。該依賴性是所有的DLL相關項目取決於cryptest, Release Win32
。
的Visual Studio可以讓我們通過選擇構建菜單生成所有配置,然後批生成...→全選→生成。當我執行建立所有,建立了第一個配置是:
------ Build started: Project: cryptlib, Configuration: DLL-Import Debug x64 ------
Performing Custom Build Step
Assembling: c:\Documents and Settings\cryptopp-5.6.3\x64masm.asm
Performing Custom Build Step
Compiling...
pch.cpp
...
以上可以看出,機械選擇cryptlib, DLL-Import Debug x64
作爲其首選。我想下面的命令:
cryptlib, Release Win32
cryptest, Release Win32
- 不要在意其餘22 ....
問題是我不能告訴Visual Studio,全部 Win32和x64 DLL項目依賴於Win32 cryptest
。
我該如何控制訂單批量生成→全部生成?
目前,我有過構建運行所有兩次。
========== Build: 20 succeeded, 4 failed, 0 up-to-date, 0 skipped ==========
第二次運行結尾:與第一端
========== Build: 4 succeeded, 0 failed, 20 up-to-date, 0 skipped ==========
重新排序當溶液文件的GlobalSection(ProjectConfigurationPlatforms)
用文本編輯器(並將它們放在我想要的確切順序)這是我遇到的那種溫暖和模糊的結果。測試升級後的24個配置將建立與建立所有 Visual Studio 2005中下,但建立所有的Visual Studio 2008下不執行任何操作(從字面上看,沒有什麼)。
當我嘗試手動建立一個項目(右鍵單擊項目,然後構建),我得到這樣一個結果:
1>------ Skipped Build: Project: cryptlib ------
1>
2>------ Skipped Build: Project: cryptest ------
2>
在沒有理由或解釋。它肯定會很好,如果Visual Studio provided a log file試圖破譯行爲。
一個相關的問題是Visual Studio中選擇< <一些項目>>與no declarative way to change it默認啓動項目。這意味着一個特定的項目需要成爲解決方案文件中列出的第一個項目,並且不能更改。
我有一個很難找到一個解決方案,友好雙方的Visual Studio 2005(如何源文件分佈),以及一個後Visual Studio 2010的升級(一些人如何使用它)。
我可以找到一些關於這個問題的信息,如博客中的Project settings changes with VS2010。但是如何實現如上所述的依賴關係更改並不明確,並且該博客僅適用於VS2010或更高版本。
謝謝科裏。我正在通過MSDN(https://msdn.microsoft.com/en-us/library/windows/apps/jj714082%28v=vs.105%29.aspx)[通過添加爲鏈接共享代碼]是最受歡迎的)。在這種情況下,***'cryptest' ***是一個EXE,而示例共享源代碼。我想這會導致,如何共享一個EXE工件,而不是源文件。 – jww
爲了完整起見,***'cryptest.exe' ***需要的原因是因爲32位版本的可執行文件安裝了完整性指紋以檢測DLL上的一些篡改。它是一個FIPS 140-2 DLL,它的一個策略要求。該要求沒有其他原因存在。 – jww
你是什麼意思的神器?您可以使用事前/事後構建事件來運行您想從之前構建/生成的其他項目中獲取事物的任何命令。你的問題解決了嗎? –