我在VS2008中有一個包含多個項目的C++解決方案。此解決方案包含運行時所需的文件,根據相對於解決方案目錄(例如"Testing/data/" + "dataN.bin"
)的路徑加載。在VS2008中全局更改「調試/工作目錄」(不是每個用戶)
爲了實現此解決辦法,我必須設置工作目錄中的項目(S)設置,使其指向解決方案目錄(例如Configuration Properties >> Debugging >> Working Directory = $(SolutionDir)
)。當我在自己的PC上進行調試時,這工作正常。但是,當不同的用戶加載我的解決方案時,他的項目沒有正確設置此屬性。
我已將此設置追蹤存儲到項目文件(PROJECT.vcproj
)中,但不是存儲在爲其創建的用戶特定文件(PROJECT.vcproj.DOMAIN.USER.user
)中。
我想一種方式,存儲所有用戶的這種設置,無需手動一次又一次地設置。
我的想法是:
- 找到一個方法來其存儲在.vcproj文件(而不是用戶特定的)或解決方案文件。
- 找到一種方法來創建一個「默認用戶特定文件」,使所有用戶特定的設置將開始(而且可以隨意在以後修改)。
但是,我沒有找到一個方法來做到任一。
多幾個注意事項/限制:
- 我需要與許多大的文件,因爲這些資源的工作,所以我想避免執行復制到不同的目錄。
- 解決方案需要支持多種構建配置(調試,發佈等)。
- 如果可能的話,我想避免前/後生成腳本,以保持簡單(低優先級)。
任何幫助將提前讚賞...謝謝。
複製資源:這樣做會訣竅,但是我擁有大量的資源來複制(在這種情況下是大型測試向量),而且每次複製這些資源都會浪費時間和內存。此外,我有多個構建配置(發佈,調試,...),這將導致進一步的重複,我希望避免。因爲這些數據被多個項目(以不同的方式)使用,所以這些向量在根目錄「解決方案」目錄中是合理的。另外,我想在解決方案的文件列表中維護順序(關於目錄結構)。 – scooz 2010-06-20 13:19:58
另一方面,將可執行結果複製到根目錄解決方案目錄不僅會導致根目錄混亂,而且不能正確支持多個生成配置(將覆蓋同名文件等)。 看來,出於調試目的,最合理的事情是改變工作目錄。關於你提出的部署問題(我同意),我寧願把它比調試時複雜(因爲我調試的次數少於我的調試) – scooz 2010-06-20 13:23:05
這就是爲什麼我指出了xcopy/d選項的行爲。你只支付一次副本。 – 2010-06-20 13:25:20