[英]Configurations from External Projects in Visual Studio 2012
我遇到了Visual Studio 2012的問題,我希望有一個解決方案。 我在我的解決方案中有2個項目:1個項目是“.exe”項目,另一個是“.lib”項目。 我已經在lib項目中添加了lib項目作為參考,並且我確保它被安排首先編譯。 lib項目有一堆額外的include目錄和一堆額外的依賴項和鏈接庫。 lib項目編譯得很好。 但是,exe應用程序不會繼承任何其他包含目錄或其他庫目錄或依賴項。 我能夠通過將配置復制到exe項目來解決這個問題,但這意味着如果我更新了lib依賴項,那么我需要在每個使用該庫的項目中更新它(我玩這個庫用於多個項目)。 這似乎應該有一個解決方案,但我似乎無法找到它。 有沒有人想出讓項目繼承引用項目的配置的方法,或者沒有辦法解決這個問題? 謝謝。
你沒錯,項目不會繼承他們引用的其他項目的屬性。 要解決您的問題,您需要的是一個屬性表 。 屬性表是與項目分開的屬性集(就像您在“項目屬性”中設置的那樣)。 您可以將單個屬性表應用於許多項目。
在您的情況下,“附加庫依賴項”和“其他包含目錄”將放入屬性表中。 該屬性表將應用於.exe
項目和.lib
項目。 進行更改時,您將把它們添加到屬性表中,兩個項目都將看到更改。
讓我們一步一步地設置屬性表來做你想做的事情。
.exe
和.lib
項目加載解決方案文件。 假設您的庫的名稱是PowerMath.lib
而您的主要可執行文件是SuperCalc.exe
。 PowerMath.lib
項目的項目屬性(在解決方案資源管理器中右鍵單擊該項目,然后從上下文菜單中選擇“屬性”)。 找到您所做的“其他庫依賴項”和“其他包含目錄”設置,然后將其刪除。 (只刪除你的更改,而不是以前的更改。)(另外,寫下你的東西或將其復制到某個地方 - 它將在步驟10中返回。)完成PowerMath.lib
項目后,重復該過程使用SuperCalc.exe
項目。 把它全部撕掉,這樣就不會干擾我們要采取的新方法。 確保您已為項目的所有配置(Debug和Release,Win32和x64)執行此操作。 PowerMath
和SuperCalc
項目名稱。 右鍵單擊PowerMath.lib
項目,然后選擇菜單選項“ 添加新屬性表” 。 PowerMath-settings.props
。 然后單擊“ 添加”以創建屬性表,並自動將其附加到PowerMath
.lib項目。 PowerMath-settings
屬性表已附加到這兩個配置。 PowerMath-settings
屬性表列在一堆已存在的其他屬性表上方,這些屬性表的名稱類似於Core Windows Libraries
和Unicode Support
。 您項目的任何配置中的所有設置都來自組合這些屬性表! 這就是Visual Studio中屬性的工作方式 - 將所有項目的屬性表放在一起,按順序放在第一個屬性表的底部。 PowerMath-settings
屬性表。 這將帶您進入熟悉的Project Properties界面。 此處所做的更改不適用於項目或該項目內的特定配置。 相反,您只是為屬性表PowerMath-settings.props
編寫PowerMath-settings.props
。 Edit...
PowerMath-settings.props
的屬性表,其中存儲了PowerMath.lib
庫的所有用戶所需的設置。 SuperCalc
項目(這是您的.exe)。 選擇菜單選項添加現有屬性表 。 找到PowerMath-settings.props
並選擇它。 SuperCalc.exe
獲取您剛剛為PowerMath.lib
創建的所有設置。 SuperCalc.exe
項目的項目屬性。 轉到“其他包含目錄”。 單擊該字段左側的向下箭頭,然后選擇Edit...
您將看到屬性表設置被列為“繼承值”。 現在,只要有一個使用PowerMath.lib
的新項目,只需轉到Property Manager並添加現有屬性表: PowerMath-settings.props
。
請記住,必須通過“屬性管理器”對話框對屬性表中的屬性進行所有更改, 而不是使用PowerMath.lib
項目屬性! “項目屬性”是一種“覆蓋”屬性表,僅適用於一個特定項目。 它位於物業經理列出的所有物業單之上。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.