2014-11-17 17 views
6

Trình biên dịch C# nào sử dụng Visual Studio 2013? Nếu tôi cài đặt Visual Studio 2015 với trình biên dịch Roslyn mới, điều đó có ảnh hưởng đến cài đặt Visual Studio 2013 của tôi không?Cài đặt Visual Studio 2015 có thay đổi trình biên dịch được sử dụng bởi VS 2013 không?

Tôi hỏi vì chúng tôi có một số thử nghiệm được biết là không thành công khi mã của chúng tôi được tạo bằng Visual Studio 2015. Một số khác biệt ở tám con số đáng kể. Các giải pháp khi Visual Studio 2015 được phát hành có lẽ sẽ được tăng dung sai trên các bài kiểm tra, nhưng tôi muốn hiểu làm thế nào Visual Studio quyết định trình biên dịch để sử dụng.

Visual Studio 2013 có thể được đặt rõ ràng để sử dụng trình biên dịch cũ không? Hoặc một kịch bản msbuild?

+8

Mong đợi loại * float * có nhiều hơn 7 chữ số có nghĩa luôn là lỗi trong mã của bạn chứ không phải trình biên dịch. Các giá trị chữ số ngẫu nhiên ngoài chữ số thứ 7 bị ảnh hưởng bởi jitter được sử dụng, điều này đã thay đổi. –

+3

Không cài đặt VS2015 trên máy sản xuất. Đây là một bản xem trước ** không được hỗ trợ **. –

+0

Heartily đồng ý với @DanielMann. Tôi sẽ không cố gắng sửa lỗi này cho đến khi VS2015 trưởng thành hơn một chút. – spender

Trả lời

8

số cài đặt Visual Studio 2015 không thay đổi trình biên dịch sử dụng bởi VS 2013. Tại dòng lệnh, bạn có thể lựa chọn giữa bằng cách chạy tương ứng msbuild.exe

Những thất bại thử nghiệm là do .NET Framework 4.6, thay vì thay đổi trong trình biên dịch.

Cố định các vấn đề bằng cách thiết lập 'sử dụng di sản JIT' môi trường COMPLUS_useLegacyJit biến mỗi https://github.com/Microsoft/dotnet/blob/master/docs/testing-with-ryujit.md

2

Cài đặt VS2015 sẽ thay thế .NET Runtime và cập nhật nó lên 4.5.3 - Tôi không biết liệu trình biên dịch JIT có được thay thế hay không, nhưng có thể.

Trong trường hợp này, bạn có thể quan sát các kết quả kiểm tra khác nhau bất kể trình biên dịch C# nào được sử dụng.

Dù sao, cài đặt thời gian chạy 4.52 thay đổi lớn đối với máy và không thể trực tiếp song song với thời gian chạy không xem trước nên tôi không khuyến nghị sử dụng trên máy sản xuất. Ví dụ API Debugger của Microsoft, gói CLRMD (Microsoft.Diagnostics.Runtime nuget) không còn có thể kết nối với thời gian chạy 4.5.3 - ví dụ như ở đây là been reported.

Tôi cho rằng có nhiều thay đổi đột phá hơn sẽ được phát hiện.

+0

Vì vậy, có vẻ như có nguy cơ liên quan đến việc chạy các side-by-side sau đó nếu điều này nâng cấp thời gian chạy Net lên 4.5.3. Có bất kỳ vấn đề đã biết nào khác không? –

10

Trình biên dịch C# nào mà Visual Studio 2013 sử dụng? Nếu tôi cài đặt Visual Studio 2015 với trình biên dịch Roslyn mới của nó, điều đó có ảnh hưởng đến cài đặt Visual Studio 2013 của tôi không?

Cài đặt Visual Studio 2015 Xem trước sẽ không ảnh hưởng đến cài đặt Visual Studio 2013 và trình biên dịch C# và VB cũ trong thư mục cài đặt .NET Framework trong thư mục Windows không được thay thế. Thay vào đó, Visual Studio 2015 Preview sử dụng và bao gồm bản xem trước của phiên bản tiếp theo của Microsoft Build Tools, MSBuild 14.0, được cài đặt trong thư mục Program Files 32-bit trong \ MSBuild \ 14.0 và chứa các trình biên dịch mã và trình biên dịch Roslyn mới .

Đối với C++, không có gì đáng kể đã thay đổi và khi trình biên dịch nằm trong thư mục con \ VC \ bin của bản cài đặt Visual Studio cụ thể, chúng sẽ không ảnh hưởng lẫn nhau.

Visual Studio 2013 có thể được đặt rõ ràng để sử dụng trình biên dịch cũ không? Hoặc tập lệnh msbuild?

Không cần thiết vì Visual Studio 2013 chỉ có thể sử dụng trình biên dịch cũ, trừ khi bạn đã cài đặt và bật tiện ích mở rộng Roslyn CTP đã lỗi thời.

2

lẽ VS 2015 không ảnh hưởng đến trình biên dịch sử dụng bởi VS 2013, nhưng nó chắc chắn ảnh hưởng đến Roslyn (nếu bạn cài đặt VS 2015 cũ của bạn , mã Roslyn trước VS2015 có thể ngừng hoạt động). Đối với tôi, nó giới thiệu các vấn đề với việc biên dịch các kiểu vô danh trong các kịch bản lệnh ConfigR.

0

Tôi gặp vấn đề này bằng cách cài đặt VS Professional 2015 Release by side VS professional 2012. Dự án MVC 3 của tôi được tạo trong VS 2012/.net 4.0 Tôi không thể mở bây giờ. Tôi có thể mở nó trong VS 2015/.Net 4.0 chỉ.

+1

Bạn có chắc chắn bạn đã không nâng cấp giải pháp cho năm 2015 hay thêm các tính năng chỉ có vào năm 2015 cho các dự án của mình không? Chúng tôi đang sử dụng năm 2010, 2013 và 2015 để mở cùng một giải pháp mà không gặp bất kỳ sự cố nào. Chúng tôi chỉ đảm bảo không làm bất cứ điều gì có thể buộc hành vi chỉ có năm 2015 (hoặc 2013). – MarqueIV

Các vấn đề liên quan