3

私は独自の言語を設計し、最終的には C# コードに変換します。ここで、Windows フォーム アプリケーションから C# コンパイラを使用して、この C# コードをコンパイルしたいと考えています。

実際のコンパイラ ファイルはどこにあり、どのようにコードをコンパイルしますか (現在は文字列に配置されています)??

4

6 に答える 6

5

を探しているようですねCSharpCodeProviderhttp://support.microsoft.com/kb/304655またはMSDNに例があります。

于 2012-07-16T10:09:42.553 に答える
3

この目的でC#CodeDomを使用できます。このリンクはあなたを助けるかもしれません

http://www.codeproject.com/Articles/3445/Runtime-Compilation-A-NET-eval-statement

于 2012-07-16T09:41:15.293 に答える
0

次の2つのサイトを確認する必要があります。

1-csc.exeを使用したコマンドラインビルド

http://msdn.microsoft.com/en-us/library/78f4aasd.aspx

2-インストールされている.NETFrameworkのバージョンを確認する

http://msdn.microsoft.com/en-us/library/y549e41e.aspx

使用する.NETFrameworkコンパイラのバージョンを、次の2番目のリンクから特定する必要があります。

「コンピューターに.NETFrameworkの複数のバージョンをインストールして実行できます。バージョンは任意の順序でインストールできます。インストールされているバージョンを確認するには、%WINDIR%\ Microsoft.NET \ Frameworkディレクトリを表示してください(また、 32ビットまたは64ビットバージョンがインストールされている64ビットコンピューターでFramework64ディレクトリを表示します。).NET Frameworkの各バージョンにはディレクトリがあり、ディレクトリ名の最初の2桁は.NETFrameworkのバージョンを識別します。例:.NET Framework 1.1の場合はv1.1.4322、.NET Framework 2.0の場合はv2.0.50727、.NETFramework3.5の場合はv3.5など。」

于 2012-07-16T09:51:52.907 に答える
0

csharp 構文のサービスとして nemerle コンパイラを使用するだけです。

于 2012-07-16T10:41:23.680 に答える
0
c:\windows\Microsoft.NET\Framework\v3.5\

C# コンパイラが含まれていcsc.exeます。

したがって、次のようなことができます。

const string outputfile = "abc.exe";
const string inputFile = "xyz.cs"

ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = "c:\\windows\\Microsoft.NET\\Framework\v3.5\\csc.exe";
startInfo.Arguments = "/out:" + outputFile + " " + inputFile;
Process.Start(startInfo);
于 2012-07-16T09:49:15.170 に答える
-1

代わりにEmitを使用することを検討しましたか?

csc.exe コンパイラは .Net の一部です。

通常、csc.exe 実行可能ファイルは、システム ディレクトリの下の Microsoft.NET\Framework\ フォルダーにあります。その場所は、個々のコンピューターの正確な構成によって異なる場合があります。複数のバージョンの .NET Framework がコンピューターにインストールされている場合、この実行可能ファイルの複数のバージョンがコンピューターに存在します。このようなインストールの詳細については、「 インストールされている .NET Framework のバージョンを確認する 」を参照してください。

于 2012-07-16T09:45:10.843 に答える