2016-09-25 1 views
2

私はこのF#コードスニペットを呼び出すC#プログラムを持っています。 let fsiSessionを実行すると、以下の例外が発生します。これらのsiteはいくつかのアイデアをヒントしていますが、私は彼らが何を言っているのか分かりません。 FSharp.Core.optdataがどこにあるかわかりません。FSharp.Core.optdataがFSharp.Coreの横に見つかりません

namespace FsharpTestgSystem 

open System 
open System.IO 
open System.Text 

open System.CodeDom 
open Microsoft.FSharp.Compiler.SourceCodeServices 
open Microsoft.FSharp.Compiler.Interactive.Shell 
open Microsoft.FSharp.Compiler.SimpleSourceCodeServices 


type TestSystem() = 
    // Intialize output and input streams 
    // Build command line arguments & start FSI session 
    let argv = [| "C:\\Program Files (x86)\\Microsoft SDKs\\F#\\4.1\\Framework\\v4.0\\fsi.exe" |] 
    let allArgs = Array.append argv [|"--noninteractive"|] 

    let sbOut = new StringBuilder() 
    let sbErr = new StringBuilder() 
    let inStream = new StringReader("") 
    let outStream = new StringWriter(sbOut) 
    let errStream = new StringWriter(sbErr) 
    let fsiConfig = FsiEvaluationSession.GetDefaultConfiguration() 
    let fsiSession = FsiEvaluationSession.Create(fsiConfig, allArgs, inStream, outStream, errStream) 

unknown(1,1): error FS1225: File '\bin\x64\Debug\FSharp.Core.optdata' not found alongside FSharp.Core 
unknown(1,1): error FS0229: Error opening binary ... 
+0

これはSDKディレクトリにあるはずです。 [SOのリンク](http://stackoverflow.com/questions/21224314/what-are-fs-fsharp-core-optdata-and-fsharp-core-sigdata-files/)Btw、私が見つけることができた唯一の場所このファイルはFake/toolsにありました。 – s952163

答えて

3

私は私が書いたいくつかのユーティリティについては、以下に直接参照に入れ、これらの名前空間の必要性のもの:

C:\プログラムファイル(x86の)マイクロソフトのSDK \ \のF#4.0 \ Frameworkの\ V4 \ .0 \ FSharp.Compiler.Interactive.Settings.dll

おそらく、このファイルへの参照は、余分な引数で生成されているプロセスに渡すことができます。 - ここでの参照:https://docs.microsoft.com/en-us/dotnet/articles/fsharp/language-reference/compiler-optionsを参照してください。

注:FSIのためのコマンド引数はFSharp.Core.optdataとFSharp.Coreに対処する方法についてhttps://fsharp.github.io/FSharp.Compiler.Service/corelib.htmlで良い教育のページがありますFsc.exe

+0

それはうまくいくようです。ありがとう。 – Ivan

3

と同じになる傾向があります。 sigdataファイル。

+0

今見ていただきありがとうございます。 – Ivan

0

私は私のためにそれを固定どうVS 2017をインストールした後、私の古いプロジェクトでこのエラーが発生した得た:

  • は、すべてのファイルのバックアップを作成します。起こったターゲットランタイムとしてのF#の

    • を選択し、最新バージョン:

    • nugetからFSharp.Coreの最新バージョンをインストールし、プロジェクトのプロパティで

    • (今4.2.1であることを起こります) 4.4.1.0となる。

    • ターゲットフレームワークとして.NET Framework 4.7を選択します。
関連する問題