簡體   English   中英

Visual Studio 2012中外部項目的配置

[英]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項目。 進行更改時,您將把它們添加到屬性表中,兩個項目都將看到更改。

讓我們一步一步地設置屬性表來做你想做的事情。

  1. 使用.exe.lib項目加載解決方案文件。 假設您的庫的名稱是PowerMath.lib而您的主要可執行文件是SuperCalc.exe
  2. 在Visual Studio中找到解決方案資源管理器窗口。 這是列出所有項目的子窗口,以及這些項目中的文件。 (如果沒有,請單擊“查看”菜單,然后選擇“解決方案資源管理器”選項以創建一個。)
  3. 首先,讓我們從現在設置它們的項目屬性中取出設置。 轉到PowerMath.lib項目的項目屬性(在解決方案資源管理器中右鍵單擊該項目,然后從上下文菜單中選擇“屬性”)。 找到您所做的“其他庫依賴項”和“其他包含目錄”設置,然后將其刪除。 (只刪除你的更改,而不是以前的更改。)(另外,寫下你的東西或將其復制到某個地方 - 它將在步驟10中返回。)完成PowerMath.lib項目后,重復該過程使用SuperCalc.exe項目。 把它全部撕掉,這樣就不會干擾我們要采取的新方法。 確保您已為項目的所有配置(Debug和Release,Win32和x64)執行此操作。
  4. 在Solution Explorer窗口的底部,您將看到幾個選項卡,包括:Solution Explorer,Class View和Property Manager。 如果窗口很小,這些可以縮寫。 單擊Property Manager
  5. 在Property Manager中,您將看到兩個條目: PowerMathSuperCalc項目名稱。 右鍵單擊PowerMath.lib項目,然后選擇菜單選項“ 添加新屬性表”
  6. 選擇一個引用您圖書館的好名稱。 我建議使用PowerMath-settings.props 然后單擊“ 添加”以創建屬性表,並自動將其附加到PowerMath .lib項目。
  7. 回到Property Manager窗格,您會看到PowerMath下面有兩個元素: DebugRelease 這些是您的庫的兩種配置。 如果您通過鼠標單擊它們“打開它們”,您將看到PowerMath-settings屬性表已附加到這兩個配置。
  8. PowerMath-settings屬性表列在一堆已存在的其他屬性表上方,這些屬性表的名稱類似於Core Windows LibrariesUnicode Support 您項目的任何配置中的所有設置都來自組合這些屬性表! 這就是Visual Studio中屬性的工作方式 - 將所有項目的屬性表放在一起,按順序放在第一個屬性表的底部。
  9. 雙擊列表中的PowerMath-settings屬性表。 這將帶您進入熟悉的Project Properties界面。 此處所做的更改不適用於項目或該項目內的特定配置。 相反,您只是為屬性表PowerMath-settings.props編寫PowerMath-settings.props
  10. 現在,您可以編寫其他庫依賴項其他包含目錄 轉到您希望設置這些內容的對話框。 在相應的字段中,單擊字段右側的小向下箭頭,然后選擇Edit...
  11. 在編輯框中,您將看到一個空白區域,您可以在其中編寫新設置。 (您還會看到“繼承的值”,這是來自其他屬性表的設置。)添加您的東西,然后單擊“確定”。
  12. 完成后,您將擁有一個名為PowerMath-settings.props的屬性表,其中存儲了PowerMath.lib庫的所有用戶所需的設置。
  13. 現在返回Property Manager窗口。 右鍵單擊SuperCalc項目(這是您的.exe)。 選擇菜單選項添加現有屬性表 找到PowerMath-settings.props並選擇它。
  14. Boom,現在SuperCalc.exe獲取您剛剛為PowerMath.lib創建的所有設置。
  15. 要驗證這一點,請從Property Manager切換回Solution Explorer(通過單擊子窗口底部的Solution Explorer選項卡)。 轉到SuperCalc.exe項目的項目屬性。 轉到“其他包含目錄”。 單擊該字段左側的向下箭頭,然后選擇Edit... 您將看到屬性表設置被列為“繼承值”。
  16. 有時,在退出Visual Studio,重新啟動和重新加載解決方案之前,不會應用全新屬性表的設置。 當它詢問您是否要保存項目更改和新屬性表時,請記住單擊“是” 一旦完成設置,您就不需要再次這樣做了。

現在,只要有一個使用PowerMath.lib的新項目,只需轉到Property Manager並添加現有屬性表: PowerMath-settings.props

請記住,必須通過“屬性管理器”對話框對屬性表中的屬性進行所有更改, 而不是使用PowerMath.lib項目屬性! “項目屬性”是一種“覆蓋”屬性表,僅適用於一個特定項目。 它位於物業經理列出的所有物業單之上。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM