2013-02-07 23 views
5
System.BadImageFormatException: Could not load file or assembly 'x_Accessor, 
Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. 
This assembly is built by a runtime newer than the currently loaded runtime and 
cannot be loaded. 

Tôi gặp một thời gian khó khăn để tìm cách chữa trị cho căn bệnh này ...System.BadImageFormatException: Không thể tải tập tin hoặc lắp ráp 'x_Accessor, ...' lắp ráp này được xây dựng bởi một runtime mới hơn

Tôi đã tạo ra các bài kiểm tra đơn vị cho các dự án thử nghiệm dot net. Với khung kiểm tra đơn vị mặc định.

Các công cụ tự động tạo ra một accessor - mà có thể được sử dụng để thử nghiệm các phương pháp tin.

[Tôi biết lý thuyết, phương pháp tư nhân cần được kiểm tra thông qua người gọi họ - nhưng sau đó, nó phụ thuộc vào mục đích, nội dung, bối cảnh của họ và vân vân ... vì vậy nếu tôi có thể, tôi sẽ kiểm tra chúng.]

Tôi đã làm điều này trong quá khứ trên một vài dự án và nó hoạt động tốt.

Nhưng trên hai dự án này tôi đang cố gắng để kiểm tra bây giờ, tôi đang chạy vào vấn đề này ...

Lưu ý: Tôi đang sử dụng Framework 3.5 - có thể là một vấn đề? - nhưng người truy cập nên biết điều đó!

Tôi thấy hoàn toàn không có nơi nào tôi có thể sửa đổi thời gian chạy cho lắp ráp ... mà tôi tưởng tượng là người truy cập.

Và có, tôi đã làm sạch và xây dựng lại, tôi đã hoàn toàn xóa thư mục đầu ra và xây dựng lại, tôi đã xóa các accessor và phương pháp riêng và tái tạo nó.

Hãy giúp tôi tìm cách khắc phục điều này! Cảm ơn bạn.

+1

công cụ tự động của bạn được nhắm mục tiêu NET 4. Sử dụng một cái gì đó giống như ILMerge để nhắm lại mục tiêu. – leppie

Trả lời

6

Bạn không thể tham chiếu một hội đồng được biên soạn trong phiên bản .NET cao hơn (hoặc phiên bản của CLR chính xác hơn). Vì vậy, trong ví dụ của bạn nếu bạn có một hội đồng cho các bài kiểm tra đơn vị đó là .NET 3.5 thì bạn không thể tham chiếu một assembly là .NET 4.0.

Câu trả lời này là những gì bạn đang tìm kiếm tôi nghĩ:

VS2010 SP1 unit tests targeting 3.5 framework fail if using private accessor

+0

Câu hỏi đặt ra là - "cả hai?" Bởi vì chúng tôi không nói về hai dự án! chỉ có một dự án, đó là chấm 3.5 và ... Đó là nó. Nếu bạn đang hỏi về dự án thử nghiệm và dự án thử nghiệm, chúng đều là 3.5, và chúng nằm trên cùng một nền tảng - và tất cả các kiểm thử ngoại trừ một thử nghiệm riêng tư thực hiện tốt. Tôi thực sự không nói về một dự án riêng biệt !! – Thalia

+0

Bạn đang sử dụng phiên bản Visual Studio nào? –

+0

Visual Studio 2010 (SP1) – Thalia

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