8

Tôi đã cài đặt Visual Studio 2015 làm thử và kể từ đó kiểm tra đơn vị của tôi sử dụng hàng giả sẽ không biên dịch nữa, thậm chí trên VS 2013. Mục tiêu của dự án thử nghiệm đơn vị. net 4.5.Fakes ngừng hoạt động sau khi cài đặt Visual Studio 2015

Msdn đề xuất thay đổi phiên bản khung mục tiêu. Lỗi này biến mất nếu tôi thay đổi khung được nhắm mục tiêu thành 4.6 nhưng tôi không thể cập nhật dự án của mình lên .net 4.6 như mọi nhà phát triển phải cập nhật cùng một lúc.

Lỗi mà tôi nhận được:.

Các tài liệu tham khảo chính "mscorlib.4.0.0.0.Fakes" không thể được giải quyết vì nó được xây dựng chống lại" .NETFramework, Version = 4,6 fraemwork Đây là . một phiên bản cao hơn so với hiện mục tiêu khuôn khổ" .NETFramework, Version = 4,5"

tôi cũng đã cố gắng để loại bỏ các hàng giả và tạo cho họ nhưng họ không xây dựng, tôi nhận được lỗi như thế này:

Tên loại hoặc không gian tên 'EventDataAttribute' không tồn tại trong không gian tên 'System.Diagnostics.Tracing' *;

Mọi bản sửa lỗi cho điều này?

+0

Cho đến nay giải pháp của tôi đã được để loại bỏ tất cả hàng giả và thay thế chúng với RhinoMocks. .. – Carra

Trả lời

13

Bạn có thể xóa các lớp sự cố. Nếu xây dựng đầu ra của bạn có những câu như

warning CS0115: 'System.Security.Cryptography.X509Certificates.Fakes.StubX509Certificate2.Dispose(bool)': no suitable method found to override 
warning CS0234: The type or namespace name 'EventDataAttribute' does not exist in the namespace 'System.Diagnostics.Tracing' 

Sau đó, nó có thể được gỡ bỏ từ mscorlib.fakes hoặc System.fakes file

<Fakes xmlns="http://schemas.microsoft.com/fakes/2011/"> 
    <Assembly Name="mscorlib" Version="4.0.0.0"/> 
    <StubGeneration> 
    <Remove FullName="System.Diagnostics.Tracing"/> 
    <Remove FullName="System.Text.Encoding"/> 
    <Remove FullName="System.Security.Cryptography" /> 
    </StubGeneration> 
</Fakes> 

Bây giờ, nó có thể là sắc thái hơn một chút hơn thế. Để làm cho nó hoạt động, tôi cần phải nhắm mục tiêu dự án Unit Test đến 4.6 để tạo ra mscorlib.4.0.0.0.Fakes .dll lần đầu tiên. Sau đó, tôi có thể nhắm mục tiêu lại nó xuống 4.5.1. Tuy nhiên, làm việc với cấu hình có thể đáng giá một chút thời gian của bạn vì tôi có thể làm việc xung quanh một vấn đề tương tự.

Đây là báo cáo Microsoft problem là nơi tôi có giải pháp thay thế.

1

tôi phải đề cập đến rằng bên cạnh những giải pháp đăng bởi doobop, mà làm việc cho tôi, cũng là dòng sau được yêu cầu:

<Remove FullName="System.FormattableString" /> 
<Remove FullName="System.IO" /> 
Các vấn đề liên quan