Visual Studio解決方案包含兩種類型的隱藏用戶文件。 一個是解決方案.suo
文件,它是一個二進制文件。 另外一個是項目.user
文件,它是一個文本文件。 這些文件包含的確切數據是什麼? git
我也一直想知道是否應該將這些文件添加到源代碼控制中(在個人狀況下是Subversion)。 若是我不添加這些文件而另外一個開發人員檢查解決方案,Visual Studio會自動建立新的用戶文件嗎? github
在MSDN網站上 ,它明確指出 安全
解決方案用戶選項(.suo)文件包含每用戶解決方案選項。 不該將此文件簽入源代碼控制 。 svn
因此我會說在檢查源代碼控制的東西時忽略這些文件是至關安全的。 網站
若是在ProjectProperties> Debugging> Environment中設置可執行目錄依賴項,則路徑將存儲在「.user」文件中。 編碼
假設我在上面提到的字段中設置了這個字符串: 「PATH = C:\\ xyz \\ bin」這是如何存儲在'.user'文件中的: spa
<LocalDebuggerEnvironment>PATH=C:\\xyz\\bin$(LocalDebuggerEnvironment)</LocalDebuggerEnvironment>
版本控制
這對咱們在OpenCV工做時幫助很大。 咱們能夠爲不一樣的項目使用不一樣版本的OpenCV。 另外一個優勢是,在新機器上設置項目很是容易。 咱們只須要複製相應的依賴dirs。 因此對於某些項目,我更喜歡將'.user'添加到源代碼控制中。 調試
儘管如此,它徹底依賴於項目。 您能夠根據本身的須要撥打電話。 code
不要將任何這些文件添加到版本控制中。 這些文件是自動生成的,具備工做站特定信息,若是簽入版本控制將致使其餘工做站出現問題。
不,他們不該該致力於源代碼管理,由於他們是開發人員/機器特定的本地設置。
GitHub維護Visual Studio用戶忽略的建議文件類型列表, 網址爲https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
對於svn,我有如下global-ignore
屬性集:
* .DotSettings.User
* .onetoc2
名爲.suo *
.VS
PrecompiledWeb
的Thumbs.db
OBJ
箱子
調試
*。用戶
* .vshost。*
* .tss
* .dbml.layout
正如其餘答案中所解釋的那樣, .suo
和.user
都不該該添加到源代碼控制中,由於它們是用戶/機器特定的(對於最新版本的VS,BTW .suo
被移動到專用的臨時目錄.vs
,應該是徹底沒有源控制)。
可是,若是您的應用程序須要在VS中進行一些環境調試(這些設置一般保存在.user
文件中),那麼準備一個示例文件(將其命名爲.user.SAMPLE
)並將其添加到源代碼控制中可能很方便。引用。
在這種文件中使用硬編碼的絕對路徑而不是使用相對的或依賴於環境變量是有意義的,所以樣本能夠是通用的,以便其餘人能夠容易地重複使用。