2011-10-31 29 views
21

Sau khi tôi cài đặt VS11, tôi bắt đầu nhận được lỗi sau:"Cân nhắc app.config Remapping hội họp ..." cảnh báo trong F #

Consider app.config remapping of assembly "FSharp.Core, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" from Version "2.0.0.0" [C:\Program Files (x86)\Reference Assemblies\Microsoft\FSharp\2.0\Runtime\v2.0\FSharp.Core.dll] to Version "4.0.0.0" [C:\Program Files (x86)\Reference Assemblies\Microsoft\FSharp\2.0\Runtime\v4.0\FSharp.Core.dll] to solve conflict and get rid of warning. C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1490,5): warning MSB3247: Found conflicts between different versions of the same dependent assembly.

chính xác Tôi nên làm gì? Tôi không có ý tưởng làm thế nào để làm một bản remapping như vậy.

Trả lời

18

Dưới đây là tôi nghĩ rằng một app.config mẫu thực hiện những gì được đề xuất. Tuy nhiên, những gì là trong dự án của bạn, và những gì FSharp.Core tham khảo là có? Bạn đang nhắm mục tiêu .Net 4.5 hoặc 4.0 hay cái gì? Dự án này có tham khảo một số thư viện F # cũ hơn không? Điều này thường là do hai dự án tham chiếu các phiên bản khác nhau của FSharp.Core.dll, ví dụ: kiểm tra các nút <Reference> trong tệp .fsproj.

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <dependentAssembly> 
      <assemblyIdentity name="FSharp.Core" publicKeyToken="b03f5f7f11d50a3a" 
          culture="neutral"/> 
<!--  <bindingRedirect oldVersion="0.0.0.0-2.9.9.9" newVersion="4.3.0.0"/> --> 
      <bindingRedirect oldVersion="2.0.0.0" newVersion="4.0.0.0"/> 
     </dependentAssembly> 
    </assemblyBinding> 
    </runtime> 
</configuration> 
+0

Không có phiên bản FSharp.Core được đề cập trong fsproj. Đây là một liên kết (http://dl.dropbox.com/u/4571/send.zip) đến các tệp fsproj. Tôi đang nhìn họ nhưng tôi không thấy gì lạ cả. Tôi đang nhắm mục tiêu .NET 4.0 CL và tôi không biết tham chiếu bất cứ điều gì cũ, nhưng nó có thể là :) –

+0

Bạn có bất cứ đề nghị thêm? –

+0

Có. Tạo một dự án F # mới với VS11 và kiểm tra tệp .fsproj của nó. Bây giờ hãy thay đổi các dự án hiện có của bạn bằng cách loại bỏ các dòng '' khỏi các tệp đích và thay thế chúng bằng các dự án đã thấy trong dự án VS11 mới được tạo ra. Ngoài ra, dự án mới được tạo ra sẽ có '' s để mscorlib và FSharp.Core. Thêm chúng vào dự án của bạn nếu chúng không có (với phiên bản/nhắm mục tiêu mong muốn nếu cần). Tôi nghĩ mọi thứ sẽ hoạt động. – Brian

0

Nếu bạn đã hoàn thành nâng cấp tốt, sẽ không có vấn đề như vậy ... Trừ khi bạn đang sử dụng thư viện của bên thứ ba, sử dụng FSharp cũ.Có chính nó. Trong trường hợp của tôi, đó là FSharpPowerPack, người thực hiện điều này.

Vì vậy, bạn phải cập nhật thư viện đó trước tiên để loại bỏ thông báo này.

3

cùng một lỗi liên quan đến Json.Net

Trong hồ sơ dự án tôi đã

<Reference Include="Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL"> 
    <SpecificVersion>False</SpecificVersion> 
    <HintPath>..\packages\Newtonsoft.Json.6.0.1\lib\net45\Newtonsoft.Json.dll</HintPath> 
</Reference> 

<ItemGroup> 
    <Reference Include="Newtonsoft.Json"> 
     <HintPath>..\packages\Newtonsoft.Json.5.0.6\lib\net45\Newtonsoft.Json.dll</HintPath> 
    </Reference> 
</ItemGroup> 

Xóa cái cũ đã giải quyết được vấn đề.

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