Tôi thiết lập một máy tính mới và cài đặt VS2015. Biên dịch dự án Tôi hiện đang làm việc trên các kết quả trong một số mã không hợp lệ (ILSpy tạo ra các nguồn không thể nén). Nó hoạt động tốt trong VS2013 bằng cách sử dụng ToolsVersion 12.Biên dịch cho ToolsVersion 12 với Visual Studio 2015
Tệp nhật ký cho tôi biết rằng thiếu công cụ 12 thiếu, vì vậy tôi đã cài đặt nó. Tuy nhiên bất cứ điều gì tôi làm hoặc thiết lập, nó luôn luôn biên dịch bằng cách sử dụng ToolsVersion 14. Tôi có thể tự gọi MSBuild.exe
vận chuyển với VS2013 (sử dụng ToolsVersion 12) và mã là chính xác. Làm tương tự với MSBuild.exe
được gửi cùng với kết quả VS2015 (sử dụng ToolsVersion 14) trong mã INCORRECT. Vì vậy, tất cả tôi cần là VS2015 để sử dụng công cụ 12.
MSDN nói:.
"Bắt đầu từ trong Visual Studio 2013, phiên bản MSBuild Toolset là giống như Visual Studio số phiên bản MSBuild mặc định là Toolset này bên trong Visual Studio và trên dòng lệnh, bất kể phiên bản ToolSet được chỉ định trong tệp dự án. Hành vi này có thể bị ghi đè bằng cách sử dụng cờ/ToolsVersion. Để biết thêm thông tin, hãy xem Ghi đè cài đặt công cụ nhúng. "
Đặt như vậy bằng cách sử dụng MSBuild thủ công hoạt động tốt, nhưng làm thế nào để tôi thiết lập điều này trong VS 2015 ?? Không có biến môi trường nào hoạt động, nó luôn sử dụng bộ công cụ 14!
Bạn sẽ phải gỡ bỏ cài đặt .NET 4.6 để các trình biên dịch Roslyn dựa được loại bỏ. Nếu không, trình biên dịch C# có thể tiếp tục cung cấp cho bạn cùng một assembly không hợp lệ. Nhưng nói chung, ILSpy không hoạt động tốt với các assembly được biên dịch bởi Roslyn. Vì vậy, hội đồng của bạn có thể thực sự hợp lệ, chỉ ILSpy không thể hiểu chúng. Bạn có thể kiểm tra danh sách lỗi ILSpy để tìm hiểu thêm về điều đó. –
Xin lỗi, đề xuất của bạn không khắc phục được sự cố! Vấn đề thực sự là VS sử dụng MSBuild 14. Như tôi đã đề cập trước đây nếu tôi chạy MSBuild từ thư mục 12 tất cả là tốt. Tôi đổi tên thư mục 14 và bây giờ VS không tải các dự án, do đó, nó tìm kiếm thư mục 14. Giải pháp đơn giản NẾU người ta biết cách thay đổi/thiết lập biến $ (MSBuildToolsVersion). Điều này rõ ràng là thiết lập đến 14 và các thuộc tính ToolsVersion không được vinh danh nữa (như Microsoft tiểu bang mà không đưa ra một giải pháp làm việc cho một sự thay thế). Tôi đổi tên thư mục 14 thành 12 và kết quả là các sự cố khác ... ARGH! – user1029883
Tôi không chắc tại sao điều này lại bị giảm giá. Câu hỏi vẫn xuất hiện là "Làm thế nào để VS2015 xây dựng với một ToolsVersion trước đó?" –