問題タブ [system-codedom-compiler]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
816 参照

system-codedom-compiler - コンパイル後のクラスと関数へのアクセス ( CompiledAssembly )

コード例をいくつか示します。これをコンパイルする方法がわかりました。その場所をつかみ、ビジュアル スタジオのオブジェクト ブラウザを使用して DLL を調べることができました。クラスインスタンスを取得して関数を呼び出す方法がわかりません。

0 投票する
1 に答える
1217 参照

.net - CodeDom プロバイダーを持つ .NET プログラミング言語はどれですか?

C#、VB.NET、C++ (マネージおよび C++/CLI)、F# の他に、独自の CodeDom プロバイダーを持つ .NET プログラミング言語はどれですか?

0 投票する
1 に答える
439 参照

c# - .Net3.5CodeDomコンパイラが奇妙なエラーを生成する

これはかなりの範囲ですが、可能な限り問題を説明しようと思います。.Net 3.5のCodeDomコンパイラを使用して3つのcsファイルをコンパイルしています...そのうちの2つはEdmgen.exeから生成され、1つは動的に生成されたファイルです。コンパイルコードは次のようになります

これらの3つのファイルすべてを一緒にコンパイルすると、このエラーが発生します

クラス、構造体、またはインターフェイスメンバー宣言のトークン'void'が無効です

このエラーは、ObjectLayer.csにあるこのコード行を参照していると思います。

部分的なvoidOnIDChanged();

ただし、これら3つのファイルが新しいVS2010プロジェクトに含まれ、そのコンパイラでコンパイルされた場合、正常に動作します。このエラーは、CodeDomコンパイラでのみ発生します...「部分的な無効」に問題があります。

私はここでこれに非常に類似した問題を見つけました http://social.msdn.microsoft.com/forums/en-US/linqprojectgeneral/thread/85e085c8-b6ac-4cae-b59d-7b9ce7758122/

ただし、VSコンパイラではなくCodeDomコンパイラを使用しているため、この修正は機能しません。

また、.Net 3.5コマンドラインコンパイラ(csc.exe)を試しましたが、これも正常に機能しました。また、この正確なコードを.Net4でテストしました。これも機能します。この問題は、.net3.5でのみ発生するようです。

誰かがこれに遭遇したり、.Net 3.5 CodeDomコンパイラが部分的なボイドの問題を抱えている理由を知っていますか?

0 投票する
1 に答える
1303 参照

c# - C#codedomコンパイラパラメータでdllからアセンブリを追加する際のエラー

私は、ユーザーがc#コードを動的にコンパイルできるようにするac#codedomプロジェクトに取り組んでいます。wpfのアセンブリdllを追加するとエラーが発生します(winformsでは正常に機能しています)。「System.Windows.Media」のような参照を追加しようとすると、「アセンブリで####が見つかりません。参照がありませんか」と表示されます。しかし、「C:\ Program Files \ Reference Assemblies \ Microsoft \ Framework \ v3.0 \ System.Printing.dll」のようなdllパスで参照を追加すると、「File C:\ Program Files\Reference」と表示されます。 Assemblies \ Microsoft \ Framework \ v3.0 \ System.Printing.dll not found」ですが、System.Printing.dllをアプリケーションの実行可能フォルダーに配置すると正常に動作します。

以下は、コンパイラオプションへの参照を追加するために使用しているコードです。

私は問題を理解することができません。また、wpfアセンブリを追加する他のアプローチはありますか?

ありがとう

0 投票する
1 に答える
830 参照

.net - 致命的なエラーCS0007:予期しない共通言語ランタイム初期化エラー-システムは指定されたファイルを見つけることができません

エラーを解決するのを手伝ってくださいfatal error CS0007: Unexpected common language runtime initialization error - the system cannot find the file specified.

(C#フォームアプリケーションから)コードを動的にコンパイルすると、codedomを使用して上記のエラーがスローされます。しかし、テストプロジェクトから同じファイルをコンパイルしても、エラーは発生しません:(

0 投票する
2 に答える
652 参照

c# - C# ユーザー提供コードのコンパイルと使用

私がやろうとしているのは、ユーザーがテキストボックスにメソッドを記述し、コードでそのメソッドを呼び出せるようにすることです。これは最終的に、目的関数が与えられた最適化のためにデモ アプレットで使用されます。

それで、サンプル コンソール アプリケーションを使用してきましたが、問題が発生しています。スタック オーバーフローや codeproject などのソースを確認し、コードをコンパイルできるところまで来ました。しかし、それを呼び出してメソッドにのみアクセスする方法がわかりません。

メソッドで Invoke を呼び出してエラーが発生し続ける方法について、さまざまな組み合わせを試しました。私ができるようにしたいのは、ユーザーに次のような関数を定義させることです:

そして、funcname を直接呼び出すことができます。これができない場合は、現時点で入手できるものを使用します。

ヘルプやガイダンスをいただければ幸いです。ありがとう。

0 投票する
2 に答える
1059 参照

c# - System.CodeDomを使用して拡張メソッドを生成する

.NET 4.0でSystem.CodeDomを使用して拡張メソッドを生成しようとした人はいますか?CodeMemberMethodまたはCodeParameterDeclarationExpressionを拡張メソッド/パラメーターとして指定する方法はないようです。

これが不可能な場合、適切な回避策はありますか?

ありがとう

0 投票する
1 に答える
711 参照

c# - CodeDom は、安全でないコードを生成するか、代替コンパイルの代替手段を生成します

CodeDom を使用して、かなり大規模なプロジェクトの開発を完了しました。まあ、ほぼ完了 - 1 つの小さな問題を除いて - 私のプロジェクトのクラスの 1 つで/unsafeタグが必要です。CodeDom は unsafe ポインターを使用したメソッドまたは型の *生成 * をサポートしていないことを読みましたが、ファイルからクラスをコンパイルできる方法があるかどうかについて興味がありました。タグが組み込まれています。.csproj ファイルを手動で作成し、ここから安全でないコードを有効にできることはわかっていますが、ファイルからコンパイルするときにこの .csproj ファイルを使用できるとは思いません。

最後に、上記の方法がどれも不可能な場合、C#.dll を使用してソース コードを生成する方法はありますか? おそらく、VS がデフォルトで使用しているものと同じものです。

お手伝いありがとう!

エヴァン

0 投票する
1 に答える
538 参照

c# - COM 相互運用のための DLL のランタイム コンパイル

私は、ユーザー向けに数学的モデルを構築し、それらをさまざまな形式で出力できるプロジェクトに取り組んでいます。現在、Python、Java、C++ での出力をサポートしています。これは機能します。コードを自動生成して、1 日と呼ぶだけです。

ただし、新しい要求が行われました。ユーザーは、Excel 内からモデルを使用できるようにしたいと考えています。私はいくつかの検索を行い、http://richnewman.wordpress.com/2007/04/15/a-beginner%E2%80%99s-guide-to-calling-a-net-library-from-excel/を見つけました

これは良いスタートですが、プログラムでこれを行う必要があります。モデルは、より大きなプログラムにオブジェクトとして格納されます。ユーザーが Excel の DLL としてエクスポートすることを選択した場合、ボイラープレート コードを使用して、使用するメソッドを挿入します。

ただし、COM Interop 用のコードを登録する必要があるようです。私のテスト コードは、C# を使用してそのメソッドにアクセスできる DLL を作成します。しかし、Excel 2000 で参照を追加しようとすると (わかっています、わかっています、企業は最悪です)、VBA は機能しません。TLBファイルが作成されていないようで、ロードするものがありません。

生成されたコードをスタンドアロンとしてコンパイルし、COM を表示可能にし、com 相互運用ボックスに登録すると、TLB は生成されますが、Excel VBA は自動化エラーをスローします。

それでは実際の質問です。

1) Com Visible で、COM Interop 用に Reistered である DLL を実行時に作成するにはどうすればよいですか?

2) どうすれば Excel をうまく操作できるようになりますか。

簡単な DLL コードの例は次のとおりです。

プログラムで DLL をビルドするコードは次のとおりです。

0 投票する
1 に答える
79 参照

c# - 自動生成されたクラスでカスタム クラスを参照しますか?

CodeDom を使用してコードを生成しようとしている 2 つのクラスがあります。最初のクラス (StudentModel) は、非常に簡単ですが、CodeDom を使用して生成できます。

2 番目のクラス、つまり Student クラスでは、StudentModel クラスを参照しようとしています。StudentModel クラスは、Student クラスを生成する前に生成されます。

しかし、CodeDom を使用して 2 番目のクラス (Student) を生成することは可能ですか?