簡體   English   中英

為什么會有 .sln、.suo 和 .csproj 文件?

[英]Why are there .sln, .suo and .csproj files?

我開始使用Visual Studio 2010。在我完成C#程序后,我看到項目根目錄中有.sln.suo文件,子目錄中有一個.csproj文件。 那些文件是干什么用的?

我需要確定要放入 Git 存儲庫的文件。 連同我創建的源代碼/文檔,我想這三個文件是我唯一需要處理的文件。 但是,我不確定我是否正在跟蹤正確的文件。

添加

個人宏文件呢? 我有Emacs 按鍵開關宏.sln文件或.csproj文件有這個宏嗎?

您應該提交.sln.csproj ,但不.suo.user文件。

您可以將以下內容添加到.gitignore

#ignore thumbnails created by windows
Thumbs.db
#Ignore files build by Visual Studio
*.obj
*.exe
*.pdb
*.user
*.aps
*.pch
*.vspscc
*_i.c
*_p.c
*.ncb
*.suo
*.tlb
*.tlh
*.bak
*.cache
*.ilk
*.log
[Bb]in
[Dd]ebug*/
*.lib
*.sbr
obj/
[Rr]elease*/
_ReSharper*/
[Tt]est[Rr]esult*

SLN(解決方案)是解決方案文件。 它存儲有關構成您正在開發的項目的項目集合的信息。 它們包含項目,源代碼控制設置或任何其他全局級別的東西。

CSProj(項目文件)是實際的代碼項目(C#Libraries,WCF Services等)。 它在項目級別存儲信息。 它包含了所有相關的參考文獻,Classess等。

SUO(解決方案用戶選項)是用戶設置文件。 完全一次性,你可以刪除它,你將失去的最常見的事情是斷點。


推送除SUO設置文件之外的所有內容。

不要包含任何bin,debug,obj目錄。 您應該包含的唯一DLL(或編譯/生成的對象)是應用程序外部的DLL。

來自MSDN:

解決方案(.sln)是用於在Visual Studio中組織項目的結構。 它執行類似於Visual Basic 6.0中的Windows程序組(.vbg)文件和Visual C ++ 6.0中的項目工作區(.dsw)文件的功能。 該解決方案維護.sln(基於文本,共享)和.suo(二進制,用戶特定的解決方案選項)文件中項目的狀態信息... [來源]

此外,還來自MSDN:

解決方案用戶選項(.suo)文件是以二進制格式存儲的結構化存儲或復合文件。 您將用戶信息保存到流中,流的名稱是用於標識.suo文件中信息的密鑰... [來源]

您不需要將.suo文件放在VCS中。 這是一個特定於用戶的文件。

SUO文件確實有目的,我不同意應該始終忽略它們的說法。 我不會忽略它們,作為一般做法,我將它們添加到我們的SVN存儲庫中。 我的項目並不總是使用啟動項目或平台的解決方案默認值。 我覺得很煩人,如果我抓住一個新項目,它不會默認為64位和適當的平台。 SUO包含正確設置這些默認值的設置。

這樣做的缺點是它是一個二進制文件,所以每次打開解決方案並執行任何操作時文件都會發生變化。 通常文件小於100k,除非你知道你改變了什么,否則我不提交更改。

就我而言,我刪除了解決方案和項目中的所有“bin”和“obj”文件夾

暫無
暫無

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

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