it-swarm-vi.tech

Tôi có nên thêm tệp Visual Studio .suo và .user vào kiểm soát nguồn không?

Các giải pháp Visual Studio chứa hai loại tệp người dùng ẩn. Một là tệp giải pháp .suo là tệp nhị phân. Cái còn lại là tệp dự án .user là tệp văn bản. Chính xác thì những tập tin này chứa những dữ liệu nào?

Tôi cũng đã tự hỏi liệu tôi có nên thêm các tệp này vào kiểm soát nguồn hay không (Subversion trong trường hợp của tôi). Nếu tôi không thêm các tệp này và nhà phát triển khác kiểm tra giải pháp, Visual Studio có tự động tạo tệp người dùng mới không?

783
Ben Mills

Các tệp này chứa các cấu hình tùy chọn người dùng nói chung dành riêng cho máy của bạn, vì vậy tốt hơn hết là không đặt nó trong SCM. Ngoài ra, VS sẽ thay đổi nó gần như mỗi lần bạn thực hiện nó, do đó, nó sẽ luôn được SCM đánh dấu là 'đã thay đổi' . Tôi không bao gồm, tôi tham gia một dự án sử dụng VS trong 2 năm và đã không có vấn đề làm điều đó. Khó chịu nhỏ duy nhất là các tham số gỡ lỗi (đường dẫn thực thi, mục tiêu triển khai, v.v.) được lưu trữ trong một trong các tệp đó (không biết là gì), vì vậy nếu bạn có một tiêu chuẩn cho chúng, bạn sẽ không thể ' xuất bản 'nó thông qua SCM để các nhà phát triển khác có toàn bộ môi trường phát triển' sẵn sàng sử dụng '.

638
Fabio Ceconello

Bạn không cần thêm những thứ này - chúng chứa các cài đặt theo người dùng và các nhà phát triển khác sẽ không muốn bản sao của bạn.

131
Steve Cooper

Những người khác đã giải thích tại sao có các tệp *.suo*.user dưới sự kiểm soát nguồn không phải là một ý tưởng hay.

Tôi muốn đề nghị bạn thêm các mẫu này vào thuộc tính svn:ignore vì 2 lý do:

  1. Vì vậy, các nhà phát triển khác sẽ không kết thúc Với cài đặt của một nhà phát triển.
  2. Vì vậy, khi bạn xem trạng thái hoặc cam kết các tệp , Các tệp đó sẽ không làm lộn xộn cơ sở mã và làm mờ các tệp mới mà bạn cần thêm.
66
JXG

Chúng tôi không cam kết tệp nhị phân (* .suo), nhưng chúng tôi cam kết tệp .user. Ví dụ, tệp .user chứa các tùy chọn bắt đầu để gỡ lỗi dự án. Bạn có thể tìm thấy các tùy chọn bắt đầu trong các thuộc tính của dự án trong tab "Gỡ lỗi". Chúng tôi đã sử dụng NUnit trong một số dự án và định cấu hình nunit-gui.exe làm tùy chọn bắt đầu cho dự án. Nếu không có tệp .user, mỗi thành viên trong nhóm sẽ phải định cấu hình riêng.

Hi vọng điêu nay co ich.

47
Thomas

Vì tôi đã tìm thấy câu hỏi/câu trả lời này thông qua Google vào năm 2011, tôi nghĩ rằng tôi sẽ mất một giây và thêm liên kết cho các tệp * .SDF được tạo bởi Visual Studio 2010 vào danh sách các tệp có lẽ không nên thêm vào kiểm soát phiên bản ( IDE sẽ tạo lại chúng). Vì tôi không chắc chắn rằng tệp * .sdf có thể có quyền sử dụng hợp pháp ở nơi khác, tôi chỉ bỏ qua tệp [tên dự án] .sdf cụ thể từ SVN.

Tại sao trình hướng dẫn chuyển đổi Visual Studio 2010 tạo một tệp cơ sở dữ liệu SDF lớn?

25
Stephen

Không, bạn không nên thêm chúng vào kiểm soát nguồn vì - như bạn đã nói - chúng là người dùng cụ thể.

SUO (Tùy chọn người dùng giải pháp): Bản ghi tất cả các tùy chọn mà bạn có thể liên kết với giải pháp của bạn để mỗi lần bạn mở nó, nó bao gồm các tùy chỉnh mà bạn đã làm. 

Tệp .user chứa các tùy chọn người dùng cho dự án (trong khi SUO là giải pháp) và mở rộng tên tệp dự án (ví dụ: anything.csproj.user chứa cài đặt người dùng cho dự án any.csproj).

22
JRoppert

Điều này dường như là ý kiến ​​của Microsoft về vấn đề này:

Thêm (và chỉnh sửa) tệp .suo vào kiểm soát nguồn

Tôi không biết lý do tại sao dự án của bạn lưu trữ DebuggingWorkingDirectory trong các tập tin suo. Nếu đó là cài đặt cụ thể của người dùng, bạn nên xem xét lưu trữ trong tên tệp * .proj.user. Nếu cài đặt đó có thể chia sẻ giữa tất cả người dùng làm việc trong dự án, bạn nên xem xét việc lưu trữ nó trong tập tin dự án.

Thậm chí không nghĩ đến việc thêm tệp suo vào kiểm soát nguồn! SUO (tùy chọn người dùng soluton) có nghĩa là chứa .__ cụ thể của người dùng. và không nên chia sẻ giữa những người dùng làm việc trên cùng dung dịch. Nếu bạn đang thêm tệp suo vào cơ sở dữ liệu scc thì tôi không biết những điều khác trong IDE bạn sẽ phá vỡ, nhưng từ kiểm soát nguồn quan điểm bạn sẽ phá vỡ tích hợp các dự án web scc, Lan vs Plugin Internet được sử dụng bởi những người dùng khác nhau để truy cập VSS và bạn có thể thậm chí làm cho scc bị phá vỡ hoàn toàn (đường dẫn cơ sở dữ liệu VSS được lưu trữ trong tệp.

Alin Constantin (MSFT)

17
Scott W

Theo mặc định, Visual SourceSafe của Microsoft không bao gồm các tệp này trong kiểm soát nguồn vì chúng là các tệp cài đặt dành riêng cho người dùng. Tôi sẽ theo mô hình đó nếu bạn đang sử dụng SVN làm kiểm soát nguồn.

17
cori

Visual Studio sẽ tự động tạo ra chúng. Tôi không khuyên bạn nên đặt chúng trong kiểm soát nguồn. Đã có nhiều lần tập tin SOU của nhà phát triển địa phương khiến VS hành xử thất thường trên hộp nhà phát triển đó. Xóa tệp và sau đó để VS tạo lại nó luôn khắc phục các sự cố. 

11
Bloodhound

Trên trang web MSDN , nó ghi rõ rằng 

Tệp tùy chọn người dùng giải pháp (.suo) chứa giải pháp cho mỗi người dùng tùy chọn. Không nên kiểm tra tệp này để kiểm soát mã nguồn.

Vì vậy, tôi muốn nói rằng sẽ khá an toàn khi bỏ qua các tệp này trong khi kiểm tra nội dung để kiểm soát nguồn của bạn. 

10
Farax

Tôi sẽ không. Bất cứ điều gì có thể thay đổi trên mỗi "người dùng" thường không tốt trong kiểm soát nguồn. thư mục .suo, .user, obj/bin

8
ScaleOvenStove

Các tệp này là các tùy chọn dành riêng cho người dùng, phải độc lập với chính giải pháp. Visual Studio sẽ tạo những cái mới khi cần thiết, vì vậy chúng không cần phải được kiểm tra để kiểm soát nguồn. Thật vậy, có lẽ tốt hơn là không nên vì điều này cho phép các nhà phát triển cá nhân tùy chỉnh môi trường của họ khi họ thấy phù hợp.

7
benefactual

Bạn không thể kiểm soát nguồn các tệp .user, vì đó là người dùng cụ thể. Nó chứa tên của máy từ xa và những thứ phụ thuộc vào người dùng khác. Đó là một tập tin liên quan đến vcproj.

Tập tin

Đó là một tệp nhị phân và tôi không biết liệu nó có chứa thứ gì đó "liên quan đến người dùng" hay không.

Trong công ty của chúng tôi, chúng tôi không kiểm soát các tệp đó dưới sự kiểm soát nguồn.

6
ugasoft

Chúng chứa các cài đặt cụ thể về dự án thường được gán cho một nhà phát triển (ví dụ như dự án bắt đầu và trang bắt đầu để bắt đầu khi bạn gỡ lỗi ứng dụng của bạn).

Vì vậy, tốt hơn hết là không thêm chúng vào kiểm soát phiên bản, để VS tạo lại chúng để mỗi nhà phát triển có thể có các cài đặt cụ thể mà họ muốn. 

6
massimogentilini

.user là cài đặt người dùng và tôi nghĩ .suo là tùy chọn người dùng giải pháp. Bạn không muốn các tệp này dưới sự kiểm soát nguồn; chúng sẽ được tạo lại cho mỗi người dùng.

4
Nick

Sử dụng Rational ClearCase câu trả lời là không. Chỉ nên đăng ký .sln &. * Proj trong kiểm soát mã nguồn.

Tôi không thể trả lời cho các nhà cung cấp khác. Nếu tôi nhớ lại chính xác, các tệp này là tùy chọn cụ thể của "người dùng", môi trường của bạn.

3
titanae

Không thêm bất kỳ tệp nào vào kiểm soát phiên bản. Các tệp này được tạo tự động với thông tin cụ thể của trạm làm việc, nếu đăng ký kiểm soát phiên bản sẽ gây rắc rối ở các trạm làm việc khác. 

1
Amila

Nếu bạn đặt các phụ thuộc thư mục thực thi của mình trong ProjectProperations> Debugging> Môi trường, các đường dẫn được lưu trữ trong các tệp '.user'.

Giả sử tôi đặt chuỗi này trong trường được đề cập ở trên: "PATH = C:\xyz\bin" Đây là cách nó sẽ được lưu trữ trong tệp '.user':

<LocalDebuggerEnvironment>PATH=C:\xyz\bin$(LocalDebuggerEnvironment)</LocalDebuggerEnvironment>

Điều này đã giúp chúng tôi rất nhiều khi làm việc trong OpenCV. Chúng tôi có thể sử dụng các phiên bản OpenCV khác nhau cho các dự án khác nhau. Một lợi thế khác là, rất dễ dàng để thiết lập các dự án của chúng tôi trên một máy mới. Chúng tôi chỉ phải sao chép các thư mục phụ thuộc tương ứng. Vì vậy, đối với một số dự án, tôi thích thêm '.user' vào kiểm soát nguồn.

Mặc dù, nó hoàn toàn phụ thuộc vào các dự án. Bạn có thể nhận một cuộc gọi dựa trên nhu cầu của bạn.

1
adheen

Không, họ không nên cam kết kiểm soát nguồn vì chúng là cài đặt cục bộ dành riêng cho nhà phát triển/máy.

GitHub duy trì danh sách các loại tệp được đề xuất để người dùng Visual Studio bỏ qua tại https://github.com/github/gitignore/blob/master/VisualStudio.gitignore

Đối với svn, tôi có bộ thuộc tính global-ignore sau:

* .DotSinstall.User
* .onetoc2
*.
.vs
PreompiledWeb
ngón tay cái.db
obj
thùng
gỡ lỗi
*.người dùng
* .vshost. *
* .ts
* .dbml.layout

0
Stephen Kennedy

Không.

Tôi chỉ muốn một câu trả lời ngắn gọn thực sự, và không có câu trả lời nào cả.

Như đã giải thích trong các câu trả lời khác, không nên thêm cả .suo.user vào kiểm soát nguồn, vì chúng là dành riêng cho người dùng/máy (BTW .suo cho các phiên bản mới nhất của VS đã được chuyển vào thư mục tạm thời chuyên dụng .vs, nên tránh xa nguồn kiểm soát hoàn toàn).

Tuy nhiên nếu ứng dụng của bạn yêu cầu một số thiết lập môi trường để gỡ lỗi trong VS (các cài đặt như vậy thường được giữ trong tệp .user), có thể thuận tiện để chuẩn bị một tệp mẫu (đặt tên như .user.SAMPLE) và thêm nó vào kiểm soát nguồn tài liệu tham khảo.

Thay vì đường dẫn tuyệt đối được mã hóa cứng trong tệp như vậy, sẽ hợp lý khi sử dụng các biến tương đối hoặc dựa vào các biến môi trường, do đó mẫu có thể đủ chung để người khác có thể dễ dàng sử dụng lại.

0
AntonK