props/vsprops:工程屬性表文件(project property sheet)
后者為vs2008的,前者為vs2010及以后版本的,其主要包含工程屬性配置相關,可以單獨提取出來供不同工程項目公共使用,此外不同項目還可以追加、修改該繼承(加載)的屬性表,其他引用了該公共屬性表的工程不受到影響;此屬性表文件可以節省配置時間開銷、減少配置錯誤率,減少工程的重復設置,最終只要設置一次就可以了,尤其是當解決方案下有很多的工程需要修改配置時,其效果顯而易見。
創建工程屬性表:
無論是vsprops或props,創建時可通過以下步驟:
1. 打開菜單欄View(視圖)下的Property Manager(屬性管理器),此時出現的屬性管理器面板屬性頁;
2. 展開任意一個工程項目,可以看到內部提供了Debug、Release以及相應的Win32和x64位的版本屬性,如果要單獨對某一種屬性添加屬性表,可在其上右鍵選擇添加新項目屬性表,並設置屬性表名稱、位置等;
3. 雙擊該創建的屬性表,便可編輯該屬性表的工程設置;可根據需要設置,如輸入輸出、編譯器相關、鏈接器相關、清單工具、庫管理以及事件、自定義生成工具等,此類設置與普通工程的屬性配置類似;
4. 此后,保存該配置的屬性表即可。
使用工程屬性表:
操作類似於創建過程;
1. 打開菜單欄View(視圖)下的Property Manager(屬性管理器),此時出現的屬性管理器面板屬性頁;
2. 展開需要添加屬性表的工程項目,並對需要添加屬性的Debug、Release以及相應的Win32和x64位的版本屬性中,右鍵添加現有屬性表,將之前創建的屬性表添加進去即可。
重定義自己的工程屬性:
在添加了該屬性表后,可根據需要修改項目工程屬性,如增加、修改、刪除等操作(對原添加的屬性表無影響),若直接修改添加的屬性表也可以,不過若該屬性表為其他工程項目共享的(文件位置),則會影響其他工程
的屬性表配置的,故一般情況下若某工程特殊需要,則只需要修改當前工程屬性即可而不是屬性表。
props/vsprops異同點:
相同點:均為屬性表文件,內部為工程屬性配置相關信息,可以節省配置時間開銷、減少配置錯誤率,減少工程的重復設置,只設置一次即可;
不同點:當添加前者時,屬性表的信息被直接寫入了工程屬性種,后者卻未寫入工程屬性,並且添加屬性表后的工程屬性“常規”下會有“繼承項目屬性表”項,內容即為該添加的屬性表路徑;
此外后者若修改工程屬性后可能會出現重新加載工程文件時工程屬性配置信息丟失或異常的可能性(有待驗證,之前有出現過此類狀況);而前者不會出現此類問題。
小結:
雖然props/vsprops屬性表可以減少重復配置,減少配置出錯,不過基本上在不同大的項目中解決方案、工程配置還是有很大的不同的,優勢暫時不是很大,但對同一解決方案下還是很可觀的;
當然可以考慮配置通用的、泛型一點的屬性表,以實現真正的公用的目的。
最后就是不同VS版本轉換、升級產生的問題,低版本可直接將自動vsprops轉化為props格式,不過不同版本轉化后可能出現某些不兼容的情況;這也是不同VS IDE版本下實現移植可能出現的各種問題之一。