Làm cách nào để buộc tệp Giải pháp (SLN) được mở trong Visual Studio 2013?


102

Cố gắng mở giải pháp VS 2012 (tệp SLN) rõ ràng trong VS 2013 thành công. Thay vào đó, chỉ cần nhấp đúp vào nó trong Windows Explorer vẫn mở nó trong VS 2012.

Tôi đã đọc " Visual Studio 2012 không chuyển đổi giải pháp vs2010? " Và làm theo đề xuất để "Lưu dưới dạng ..." tệp giải pháp .

Tuy nhiên, nó vẫn mở trong VS 2012 theo mặc định.

Câu hỏi của tôi:

Làm cách nào để thay đổi tệp SLN để buộc nó được mở trong Visual Studio 2013?

Câu trả lời:


123

Các .slntập tin cho thấy dự định phiên bản là một trong những dòng đầu - ví dụ:

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2013

hoặc là:

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2012

Tuy nhiên - nó chỉ có thể sử dụng điều này nếu ứng dụng mặc định cho .slntệp là "Bộ chọn phiên bản Microsoft Visual Studio". Không có gì lạ khi .slnứng dụng mặc định là một phiên bản cụ thể để thay thế. Trong windows 8:

nhập mô tả hình ảnh ở đây

bạn có thể biết cái nào là mặc định vì nó nói "tiếp tục sử dụng":

nhập mô tả hình ảnh ở đây

nhập mô tả hình ảnh ở đây


2
@UweKeim hmmm; đó không phải là kinh nghiệm của tôi; với bộ chọn phiên bản làm mặc định, đối với tôi phiên bản chính xác của devenv được tải trên mỗi tệp sln - có thể bạn đã tải các giải pháp đó vào VS2013 tại bất kỳ thời điểm nào không? điều đó sẽ nâng cấp chúng
Marc Gravell

2
Chà, gợi ý của bạn là quá đủ đối với tôi. Yêu thích các biểu tượng thư mục màu vàng bây giờ một lần nữa, so với những biểu tượng tối trong VS 2012!
Uwe Keim

2
@UweKeim nếu bạn nhìn vào tệp sln, dòng thứ hai cho biết IDE nào để mở bằng: # Visual Studio 2013vs# Visual Studio 2012
Marc Gravell

1
@UweKeim Tôi tưởng tượng nó có một dự phòng là "nếu tôi không nhận ra giá trị hoặc IDE đó chưa được cài đặt, hãy sử dụng IDE gần đây nhất được cài đặt"
Marc Gravell

6
đối với tôi trình khởi chạy mặc định đã được đặt thành "Bộ chọn phiên bản Microsoft Visual Studio" nhưng nó đang tung ra các giải pháp được thực hiện trong studio trực quan 2013 trong lý tưởng 2012 !!. Nhưng việc áp dụng lại "Bộ chọn phiên bản Microsoft Visual Studio" làm mặc định đã khắc phục sự cố này. Bây giờ 2012 mở ra năm 2012 Ý tưởng và năm 2013 mở ra Năm 2013 Ý tưởng. (Tôi đang sử dụng windows 7 64bit)
Peter Flannery

35

Lưu ý rằng bạn cũng có thể buộc nâng cấp tệp .sln hoặc .proj bằng cách sử dụng dòng lệnh, trong đó devenv là phiên bản IDE đích:

devenv "MyProject.sln" /upgrade

Thí dụ:

"%programfiles(x86)%\Microsoft Visual Studio 12.0\Common7\IDE\devenv.exe" "D:\Source\MySolution.sln" /upgrade

Lưu ý rằng điều này không mở Visual Studio. Một giải pháp thay thế là, từ bên trong IDE, chọn "Lưu dưới dạng" cho tệp giải pháp của bạn và ghi đè hoặc lưu giải pháp dưới tên mới.

Đọc thêm: http://msdn.microsoft.com/en-us/library/w15a82ay.aspx


1
NÀY bởi vì nó có thể viết theo kịch bản và không hack.
CAD bloke

2
Thật không may, kỹ thuật này không phải lúc nào cũng cập nhật tệp giải pháp.
Theophilus

Sau đó devenv "MyProject.sln" /upgrade, bạn cũng nên chỉnh sửa tệp .sln, kiểm tra @ Zac's ans.
Wei Guo

22

Có vẻ như OP đã có câu trả lời hiệu quả ... nhưng đối với tôi thì vấn đề lại khác. Tôi đã có một giải pháp VS 2012 (thực tế là một số) và muốn chuyển đổi chúng thành 2013 (mà tôi hiểu là một thay đổi nhỏ đối với tệp .sln, nhưng tôi muốn nó được thực hiện tự động trong trường hợp có một số logic nâng cấp bí mật mà tôi không biết) .

Vì vậy, tôi nghĩ rằng tôi sẽ mở nó trong VS2013, nó sẽ tự động nâng cấp như mong đợi và sau đó tôi sẽ nhấp đúp vào giải pháp và xem nó trong VS2013 về sau. Nhưng việc mở trong VS2013 KHÔNG tự động nâng cấp giải pháp cho tôi như mong đợi và tôi không thể tìm thấy cách rõ ràng để buộc nâng cấp sau khi mở tệp trong VS2013. Tôi có thể làm việc với giải pháp, lưu các thay đổi của mình và đóng VS2013, nhưng .sln sẽ không thay đổi và không được nâng cấp.

Hóa ra vấn đề của tôi là ở cách tôi mở giải pháp ... theo thói quen, tôi nhấp chuột phải vào tệp và chọn "mở bằng" để chọn chương trình tôi muốn sử dụng để mở tệp. Tôi làm điều này thường xuyên. Lưu ý Tôi KHÔNG nói về việc thay đổi chương trình "mở bằng" mặc định mà chỉ mở một tệp với một chương trình cụ thể một lần. Vì vậy, tôi sẽ nhấp chuột phải vào tệp .sln ... mở bằng Visual Studio 2013 ... và không có gì sẽ nâng cấp.

Cuối cùng tôi nghĩ vào VS2013, sau đó thực hiện File> Open và chọn tệp .sln (điều này là lạ đối với tôi vì tôi hầu như không bao giờ mở bất cứ điều gì theo cách này, có thể bạn cũng như vậy). Dù sao điều đó đã nâng cấp tệp giải pháp ngay lập tức.

Sau khi nâng cấp, dòng 2-3 của tệp .sln đã thay đổi từ dòng này:

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2012

đến điều này:

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2013
VisualStudioVersion = 12.0.30501.0
MinimumVisualStudioVersion = 10.0.40219.1

Vì vậy, theo kinh nghiệm của tôi, để tự động cập nhật VS2012 .sln lên VS2013, bạn phải mở VS2013 và chọn .sln từ hộp thoại Tệp> Mở. Việc sử dụng shell explorer để buộc mở tệp .sln trong VS2013 không gọi ra logic nâng cấp (dường như).

Lưu ý thêm, tôi đã thử nghiệm với một giải pháp khác và sau khi thực hiện các thay đổi thông qua Trình quản lý cấu hình (rõ ràng là "chạm" vào tệp .sln), nó đã nâng cấp VS2012 lên VS2013, ngay cả sau khi đã mở bằng cách nhấp chuột phải vào mở bằng.


1
Đây chính xác là những gì tôi đã cố gắng làm. Tôi có Bản cập nhật 3 và một dự án được cập nhật tự động, nhưng dự án kia sẽ chỉ thay đổi khi tôi mở Trình quản lý cấu hình. Cảm ơn vì những lời khuyên!
Erica

2
Tôi thậm chí đã mở .sln so với 2012 từ trong VS 2013 nhưng đối với tôi nó KHÔNG nâng cấp. Kỳ dị.
Tích

4
Không phải việc mở giải pháp trong VS 2013 sẽ kích hoạt nâng cấp mà là một hành động sửa đổi giải pháp, chẳng hạn như thay đổi cài đặt trong cấu hình đang hoạt động.
bleater

Tôi đã thử nó để nâng cấp từ vs2013 lên vs2015 và nó hoạt động.
Dingxin Xu

7

Tôi đã có một giải pháp trước đó đã được nâng cấp từ năm 2010 đến năm 2013 thành công nhưng vẫn hiển thị .sln như được liên kết với năm 2010.

Tôi đã thử nghiệm tất cả các phương pháp được cung cấp trong chuỗi này và phương pháp duy nhất sửa lỗi .sln thành công là chỉ mở Visual Studio 2013, sau đó mở giải pháp vẫn được liên kết với 2010 trong IDE, sau đó sử dụng [Tệp]> [Lưu (name) .sln as] để ghi đè lên tệp .sln hiện có.

Việc đặt tập tin .sln làm "bộ chọn phiên bản Visual Studio" không có gì thay đổi và giải pháp tiếp tục mở vào năm 2010.

Phương thức devenv (name) .sln / nâng cấp không làm thay đổi tệp .sln của tôi.

Việc hack văn bản thô của tệp .sln đã làm hỏng tệp của tôi và nó sẽ không mở được.


Chúc mừng Jeff, tôi cũng gặp phải trường hợp giống như bạn. Tôi phải nói rằng thật tuyệt khi Microsoft quyết định rằng VS 2013 không cố gắng nâng cấp mọi thứ mà nó chạm vào, không giống như các phiên bản VS trước đó! Thông thường đó là cách khác xung quanh, và tôi đang cố gắng để ngăn chặn IDE VS khác nhau của tôi từ việc nâng cấp mỗi người khác .proj và các file sln :)
Simon Brangwin

@SimonBrangwin là một cải tiến, ngoại trừ việc nếu bạn gọi rõ ràng bằng / nâng cấp theo (các) câu trả lời khác, bạn sẽ mong đợi rằng nó thực sự thực hiện nâng cấp được yêu cầu!
stannius

Jeff cảm ơn! Đây là cách duy nhất tôi có thể tìm để nâng cấp hệ thống VS 2013 của mình để mở theo mặc định với năm 2015. Tôi cũng phải mở trình khám phá giải pháp và chọn thủ công nút giải pháp ở đầu cây thám hiểm để xem tên 'Lưu (tên ) .sln as 'trong menu Tệp.
ToastyMallows

6

Để giải quyết vấn đề này, tôi chỉ cần thay đổi các dòng sau của tệp .sln:

Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010

vào sau:

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2013

Dòng nhận xét sẽ được thay đổi vì nó được phân tích bởi trình tải giải pháp.


4

Điều này có thể hiệu quả đối với người đọc đang cố gắng nâng cấp tệp giải pháp lên Visual Studio 2015. (Tôi đã nâng cấp giải pháp VS 2012.)

  1. Mở giải pháp trong VS 2015.
  2. Thêm một dự án mới vào giải pháp. (Tôi đã thêm một dự án thử nghiệm.)
  3. Xóa dự án.
  4. Lưu giải pháp.

Bạn có thể muốn xóa thư mục dự án đã xóa vào lúc này vì bước 3 không xóa nó.

Điều này có hiệu quả với tôi khi cả câu trả lời của zumeyTCC đều không làm được.

BIÊN TẬP

Metro Smurf có một câu trả lời tương tự, nhưng dễ hơn của tôi cho một câu hỏi tương tự . Các bước của anh ấy là:

  1. Giải pháp mở trong VS 2015
  2. Nhấp chuột phải vào giải pháp> Thêm> Thư mục Giải pháp Mới (tên không quan trọng)
  3. Lưu giải pháp
  4. Xóa thư mục giải pháp mới được thêm vào
  5. Lưu giải pháp

Tôi chỉ đơn giản là đổi tên một dự án và hoàn nguyên nó sau đó. Bằng cách này, không có thư mục được tạo ra
Andy
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.