2013-08-21 44 views
15

Tôi đang cố gắng xây dựng một dự án tham chiếu đến SlingshotClient.dll của bên thứ 3. Dự án xây dựng tốt trên các máy trạm phát triển khác. Tuy nhiên, tôi nhận được lỗi dưới đây. Một sự khác biệt mà tôi có thể tưởng tượng là góp phần vào vấn đề của tôi là tôi cũng đã cài đặt VS 2012 và .NET Frameworks 4.5 trên máy của mình. Tôi tin rằng các nhà phát triển khác có thể xây dựng thành công này, không có những người cài đặt.Tham chiếu chính không thể được giải quyết vì nó được xây dựng dựa trên phiên bản .NET framework cao hơn khung hiện đang được nhắm mục tiêu

C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Microsoft.Common.targets (1578,5): cảnh báo MSB3274: Tham chiếu chính "SlingshotClient, Version = 1.0.0.0, Culture = neutral, PublicKeyToken = bb5a8745472e181a, processorArchitecture = MSIL "không thể được giải quyết vì nó được xây dựng dựa trên khuôn khổ" .NETFramework, Version = v4.5 ". Đây là một bản cao hơn n so với khung được nhắm mục tiêu hiện tại ".NETFramework, Version = v4.0".

Lỗi này dường như nói rằng dự án của chúng tôi nhắm mục tiêu khuôn khổ phiên bản 4.0 (chính xác), nhưng SlingshotClient.dll được tham chiếu được xây dựng nhắm mục tiêu khung phiên bản 4.5. Khi tôi nhìn vào SlingshotClient.dll trong người giả dối, có vẻ với tôi rằng lắp ráp được xây dựng nhắm mục tiêu phiên bản khuôn khổ 4,0

h

+3

Bạn cần cuộn xuống và xem TargetFrameworkAttribute –

+0

@HansPassant bạn là chính xác. TargetFrameworkAttribute thêm một chút nữa và nói 4.5. Một bài báo tôi đọc nói tôi cần kiểm tra phiên bản của mscorlib được tham chiếu. Điều này giải thích nó, mặc dù, tôi vẫn còn ngạc nhiên khi biên dịch mà không phàn nàn về một máy tính chỉ với .NET Framework 4.0. Nếu bạn muốn đăng nhận xét của mình dưới dạng câu trả lời cho câu hỏi này, tôi sẽ yêu cầu bạn ghi có câu trả lời đúng. – Dude0001

Trả lời

16

Rõ ràng nếu bạn chỉ có .NET Framework 4.0 được cài đặt, bạn có thể thêm một tham chiếu một hội đồng .NET nhắm mục tiêu 4.5 đến một dự án nhắm mục tiêu .NET 4.0. Điều này sẽ biên dịch và chạy không có lỗi.

Ngay sau khi bạn cài đặt .NET Frameworks 4.5, việc biên dịch sẽ không thành công. Giải pháp là nhắm mục tiêu dự án của bạn cho .NET Framework 4.5 hoặc nhận phiên bản của hội đồng được tham chiếu nhắm mục tiêu .NET 4.0.

.NET 4.5 là bản tóm tắt thay thế cho 4.0. 4.0 không biết bất cứ điều gì về 4.5, và tôi giả sử nó chỉ là nhìn vào chữ số đầu tiên của số phiên bản mà cho 4.0 hoặc 4.5 là như nhau, vì vậy nó được phép biên dịch. Ngay sau khi bạn cài đặt 4.5, 4.0 dự án của bạn được biên dịch bằng cách sử dụng khung 4.5 và bây giờ nó biết về 4.5 và phàn nàn.