2014-05-12 24 views
3

如何在VS2013專業版中運行FParsec?如何在VS2013中運行FParsec

我tryed使用下面的NuGet包:

,我試圖編譯我自己的https://bitbucket.org/fparsec/main的源代碼,並使用生成的dll文件: FParsec.dllFParsecCS.dll

但無論哪種方式,我總是得到下面的異常運行教程代碼:

System.MissingMethodException 
Method not found: 
    Microsoft.FSharp.Core.FSharpFunc`2<FParsec.CharStream`1<!!0>,FParsec.Reply`1<Double>> FParsec.CharParsers.pfloat()" 

誰能提供一步一步的解決方案誰得到FParsec在VS2013運行?

這是我嘗試運行代碼:

open FParsec 

[<EntryPoint>] 
let main args = 
    let str s = pstring s // This line works 
    let floatBetweenBrackets = str "[" >>. pfloat .>> str "]" // This line breaks 
    Console.ReadKey() |> ignore 
    0 
+0

如果您說哪個教程代碼失敗,或許甚至提供顯示錯誤的簡化示例,這將會很有幫助。 –

回答

6

嘗試App.config中添加到您的項目有以下內容:

<?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> 
    </runtime> 
</configuration> 

檢查FSharp.Core的版本和補丁此如有必要,請使用代碼段。

+2

謝謝。這工作!提示所有用戶有同樣的問題:您可以使用以下命令的dll的publicKeyToken: 'sn.exe -T「PathToDLL」' sn.exe-Tool駐留在: 'C:\ Program文件(x86)\ Microsoft SDKs \ Windows \ v8.1A \ bin \ NETFX 4.5.1 Tools'。可能你必須編輯這個路徑。 –