2015-04-09 18 views
15

FS Ftp4.0 4.3.0 yüklemeye çalıştığında bile bir proje F # 3.1 çalışma zamanı hedefleyen F # (FSharp.Core sürüm 4.3.1). Sonra bir konsol C# uygulaması oluşturdum, F # projem için bir proje başvurusu ekledim, FSharp.Core.dll 4.3.1'e bir başvuru ekledi..NET runtime, tüm projeler başvuru 4.3.1

Her şey herhangi bir hata veya uyarı olmadan derler, ama ben F # projesinden her türlü kullanmaya çalışıyorum ne zaman çalışma zamanı bu atar: Bu FSharp.Core 4.3.0 tüm arar yok Neden

System.IO.FileLoadException : Could not load file or assembly 'FSharp.Core, Version=4.3.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. 

projelerim referans 4.3.1? Tüm proje referanslarını 4.3.1'den 4.3.0'a değiştirirsem, her şey iyi çalışır, ancak 4.3.1 sürümüyle ne olur?

P.S. Her iki proje de .NET 4.5.1. Microsoft Visual Studio 2013

+0

Örnek olarak FSharp.Data başvuruyor musunuz? –

cevap

25

'u kullanıyorum Bu, doğal bir tahmindir, ancak istisnai duruma göre, projenizde başka FSharp derlemelerine sahip olmanız olasıdır.

Hata, kullanmakta olduğunuz bağımlılıklardan birinin FSharp.Core 4.3.0.0 gerektirdiğini gösterir. Projenizin örneğin FSharp.Data 2.2.0.0 gibi diğer FSharp bağımlılıklarına referans verdiğini varsayalım. Hatta kendi projenizde FSharp.Core 4.3.1.0'a açık bir referans eklemişseniz, bu işe yaramazsa FSharp.Data 2.2.0.0FSharp.Core 4.3.0.0'a göre üretilmiştir. Eğer proje yapılandırma dosyasına app.config içine bindingRedirect eklemeniz gerektiğini düzeltmek için:

<?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-4.3.1.0" newVersion="4.3.1.0" /> 
     </dependentAssembly> 
    </assemblyBinding> 
    </runtime> 
</configuration> 

Bu sorunu çözecektir.

+0

Anladın! Bazı metin ayrıştırmak için FParsec kitaplığı kullanıyorum ve bu kitaplık FSharp.Core 4.3.0 hedefler. Bahşiş için teşekkürler :) –

İlgili konular