新しいプロセスを生成し、次のように F# コンパイラを呼び出します。
var exeName = args[0];
var commandLine = args[1];
using (var process = new Process())
{
process.StartInfo = new ProcessStartInfo(exeName, commandLine);
process.StartInfo.UseShellExecute = true;
process.StartInfo.LoadUserProfile = true;
process.Start();
}
渡す引数は、fsc.exe へのパスと、ビルドするコードの引数です。
結果は例外です:
Unhandled Exception: System.ArgumentException: chop_extension
at Internal.Utilities.Filename.chop_extension(String s)
at Microsoft.FSharp.Compiler.Build.TcConfigBuilder.DecideNames(FSharpList`1 sourceFiles)
at Microsoft.FSharp.Compiler.Driver.main1(String[] argv)
at Microsoft.FSharp.Compiler.ErrorLogger.ErrorLoggerExtensions.ReraiseIfWatsonable(Exception exn)
at Microsoft.FSharp.Compiler.ErrorLogger.ErrorLoggerExtensions.ErrorLogger.ErrorRecovery(ErrorLogger x, Exception exn, range m)
at Microsoft.FSharp.Compiler.ErrorLogger.errorRecovery(Exception exn, range m)
at Microsoft.FSharp.Compiler.Driver.main1(String[] argv)
at Microsoft.FSharp.Compiler.Driver.main(String[] argv)
at Microsoft.FSharp.Compiler.CommandLineMain.main(String[] argv)
at Microsoft.FSharp.Compiler.ErrorLogger.ErrorLoggerExtensions.ReraiseIfWatsonable(Exception exn)
at Microsoft.FSharp.Compiler.ErrorLogger.ErrorLoggerExtensions.ErrorLogger.ErrorRecovery(ErrorLogger x, Exception exn, range m)
at Microsoft.FSharp.Compiler.ErrorLogger.errorRecovery(Exception exn, range m)
at Microsoft.FSharp.Compiler.CommandLineMain.main(String[] argv)
ただし、コマンドプロンプトから同じコマンドと引数を実行すると、エラーなしでコンパイルされます
これの原因は何ですか?