2012-03-24 36 views
7

Tôi đã có giải pháp với một số dự án trong đó. Một trong các dự án bao gồm các phương thức Assert bổ sung để kiểm tra đơn vị. Nó tham khảo Microsoft.VisualStudio.QualityTools.UnitTestFramework 10.1.0.0. Nó cũng bao gồm các dự án thử nghiệm khác, tham chiếu đến cả UnitTestFramework của Microsoft và dự án của tôi với các phương thức khẳng định bổ sung.Visual Studio vẫn tiếp tục sử dụng UnitTestFramework 10.0.0.0

Bất cứ khi nào tôi khởi động lại visual studio và biên dịch, tôi nhận được cảnh báo sau đây:

Tìm thấy mâu thuẫn giữa các phiên bản khác nhau của cùng một lắp ráp phụ thuộc.

Tôi đã thử thay đổi tất cả các tham chiếu đến UnitTestFramework thành 10.1.0.0, nhưng khi khởi động lại Visual Studio, có vẻ như đặt lại thành 10.0.0.0. Tôi thậm chí đã cố gắng thay đổi tệp dự án bên ngoài Visual Studio, nhưng khi mở dự án trong Visual Studio, tài liệu tham khảo sẽ hiển thị phiên bản cũ trong trình khám phá giải pháp một lần nữa. Khi đóng Visual Studio mà không thực hiện bất kỳ sửa đổi tệp nào, nó sẽ hỏi có lưu các thay đổi vào tệp dự án hay không.

Làm cách nào để ngăn Visual Studio thay đổi phiên bản UnitTestFramework được tham chiếu trong các dự án của tôi?

+0

tôi d thử đăng ký lại VS SP1 – KMoraz

+0

@KMoraz Tôi bây giờ có một máy tính xách tay mới, với một cài đặt sạch sẽ. Tôi đã tải xuống dự án một lần nữa và những vấn đề này vẫn tồn tại. Tôi tin rằng một cái gì đó là sai với các tập tin dự án, hoặc nó là một lỗi của Visual Studio. –

+0

Sự cố này vẫn xảy ra trong Visual Studio 2013, Cập nhật 4. –

Trả lời

3

Đã xảy ra sự cố tương tự. Một trong những nhà phát triển của chúng tôi được tổ chức lại hội và VS của mình đối với một số lý do nào đó thay đổi này:

<Choose> 
    <When Condition="('$(VisualStudioVersion)' == '10.0' or '$(VisualStudioVersion)' == '') and '$(TargetFrameworkVersion)' == 'v3.5'"> 
    <ItemGroup> 
     <Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=10.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> 
    </ItemGroup> 
    </When> 
    <Otherwise> 
    <ItemGroup> 
     <Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework" /> 
    </ItemGroup> 
    </Otherwise> 
</Choose> 

vào đây:

<Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=10.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> 
<Choose> 
    <When Condition="('$(VisualStudioVersion)' == '10.0' or '$(VisualStudioVersion)' == '') and '$(TargetFrameworkVersion)' == 'v3.5'"> 
    <ItemGroup> 
     <Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=10.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> 
    </ItemGroup> 
    </When> 
    <Otherwise /> 
</Choose> 

Dòng đầu tiên trong số đó giữ việc thay đổi trên tất cả mọi người khác của hệ thống (các triệu chứng tương tự như bạn).

Kể từ khi chúng tôi không có kế hoạch để hỗ trợ 3,5 dù sao, tôi cố định nó bằng cách loại bỏ các "Chọn" và đơn giản hóa thành:

<Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework" /> 

(loại bỏ các phiên bản cụ thể hoàn toàn từ các tài liệu tham khảo)

+0

Vì lý do nào đó, điều này có vẻ như hoạt động. Tuy nhiên, điều đáng chú ý là điều này dường như dẫn đến kết quả là 10,0 được tải. Khi tất cả các tham chiếu được đặt thành 10.0 và do đó không có 10.1 được tải, nó cũng hoạt động. Không xác định phiên bản có thể do đó chỉ đơn giản là một cách để đảm bảo 10.1 là _not_ nạp, đó là một cách tổng quát hơn để tránh điều này (lỗi?). –

+0

Ngoài ra, (mặc dù điều này có thể hoàn toàn trùng hợp) có vẻ như nó mất _much_ lâu hơn (> 1 phút) để đóng Visual Studio khi làm theo cách tiếp cận này? : / –

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