が、それはそれはそこ(共有サーバー)インストールされていない場合は、サーバー上のF#のコードを実行することが可能であるが設置されていない場合でも?おそらく、必要なアセンブリをすべてアップロードして参照することができますか? f# download placeには「他のCLI実装」用のzipが含まれています。実行F#コードは、F#は
詳細:実際には、私はf#プログラムをコンパイルして実行するためにC#を使用しています。だから私は電話する
using (CodeDomProvider provider = new Microsoft.FSharp.Compiler.CodeDom.FSharpCodeProvider())
{
cr = provider.CompileAssemblyFromSource(cp, new string[] { data.Program });
}
今私のマシン上には問題ありません。私はFSharp.Core.dll(バージョン4)とFSharp.Compiler.CodeDom(バージョン2)を含んでいます。すべてがローカルにコピーされます。サーバーでは、私はこのエラーを取得:
Could not load file or assembly 'FSharp.Core, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
at Microsoft.FSharp.Compiler.CodeDom.FSharpCodeProvider.CreateCompiler()
at System.CodeDom.Compiler.CodeDomProvider.CreateCompilerHelper()
at System.CodeDom.Compiler.CodeDomProvider.CompileAssemblyFromSource(CompilerParameters options, String[] sources)...
EDIT2: だから、実際に私がインストールされていないのF#を使用してサーバー上の F#コードをコンパイルしたかったです。ここで私がしなければならなかったものです:
1. put FSharp.Compiler.CodeDom.dll (version 2 as there is now newer now) and FSharp.Core.dll version 2 in bin directory.
2. create new directory in bin directory and put there this:
-FSharp.Compiler.dll (version 4)
-FSharp.Core (.dll, .xml, .sigdata, .optdata) (version 4)
-Fsc.exe - f# compiler
3. From code set process' FSHARP_BIN environment variable to point to above directory:
System.Environment.SetEnvironmentVariable("FSHARP_BIN", Utils.RootFolder + @"bin\comilersstuff");
この方法でコンパイルが成功すると、あなたがそれを実行したいと思います場合は、あなたがFsharp.Core.dll(V 4を。)入れていたと思います同じディレクトリにコンパイルされたF#プログラムとして。当然の
'FSharp.Core.dll'は再配布可能ですので、あなただけのアプリと一緒にそれを展開することができ、これは通常、最も簡単な方法です。 (インストーラをあなたのアプリのインストーラに連鎖させることもできます。http://msdn.microsoft.com/en-us/library/ee241127.aspxを参照してください)。 – Brian
最初の質問の回答 – ren