問題タブ [csharpcodeprovider]
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.
c# - C# CompilerParameters.OutputAssembly によりアプリケーションが再起動する
ユーザーがその場でコードをコンパイルできる ASP.Net C# アプリケーションを開発しています。この場合、CSharpCodeProvider を使用しています。
私が遭遇した問題は、どういうわけか CompilerParameter.OutputAssembly がアプリケーションを再起動させることでした (Application_Start() がコンパイル後に呼び出されることを確認しました)。コメントに入れると、コンパイルは魅力的に機能し、再起動は発生しません。
この事件が本当なのか、それともどこかでコンセプトが抜けているのか疑問に思っています。CompilerParameter.OutputAssembly から分かったのは、アセンブリを指定したファイルに出力するということです。アプリケーションが再起動するのは正常ですか?
c# - CSharpCodeProvider で参照の絶対パスを設定することは可能ですか?
CodeDom で新しい .cs ファイルを作成していますが、後で CSharpCodeProvider でコンパイル/実行したいのですが、参照に問題があります。
コードは次のようになります。
「First.dll」と「Second.dll」は、生成された .cs ファイルと同じフォルダーに存在し、直接実行するとエラーが発生します。それらを自分のプロジェクトの bin ディレクトリに移動すると問題なく動作しますが、それらを分離したままにしておきます。
"First.dll" と "Second.dll" の絶対パス、または bin ディレクトリに移動する代わりに、すべての参照を含むディレクトリへのパスを設定することはできますか?
CompilerParameters を絶対パスに変更しようとしましたが、役に立ちませんでした。
c# - 接続文字列にデータ ディレクトリを追加して、クライアント マシンにアプリケーションをデプロイする方法は?
開発中にC#でWindowsフォームアプリケーションを作成しました。次の接続文字列を使用しましたが、正常に動作します
しかし今、クライアントマシンにアプリケーションをデプロイする必要があり、接続文字列にデータディレクトリオプションを追加する必要があり、これを次のように行いました
文字列を変更すると、スローされてエラーが発生しました
物理ファイル「D:\Other Projects\Employee\Employee\bin\Debug\mydatabase.mdf」を開けません。オペレーティング システム エラー 2:「2(指定されたファイルが見つかりません。)」。ファイル 'D:\Other Projects\Employee\Employee\bin\Debug\mydatabase.mdf' をデータベース 'mydatabase' として添付できません。
接続文字列を次のように呼び出します
SQL Server 2008 を使用しました。
c# - CSharpCodeProvider の使用中にランタイム エラー アセンブリ 'System.Runtime' を取得する
参照が見つからないというランタイム エラーが発生します。
タイプ 'System.Object' は、参照されていないアセンブリで定義されています。アセンブリ 'System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' への参照を追加する必要があります
私は MVC アプリケーションを使用しており、コード内で CSharpCodeProvider を使用しています。
コンパイル エラーは発生しませんがcompileResult
、上記のように実行時エラーが発生するのはなぜですか?
assemblies
次のようなタグを追加しweb.cofig
ても、同じエラーが発生しました.理由は何ですか?
c# - 型が宣言された .cs ファイルのファイル パスを取得する
私は手続き型アセット生成システムに取り組んでおり、実際に異なるアセットを再生成するだけでよいように、特定のアセットのソース ファイルが変更されたかどうかを検出できるようにしたいと考えています。
単純なリフレクションを使用してタイプのソース ファイルを取得する方法がないことをグーグルで調べたので、回避策を見つけようとしています。これが私がやっていることです:
- Directory.GetFiles を使用して、プロジェクト ディレクトリ内のすべての .cs ファイルのリストを取得します。
- CSharpCodeProvider.CompileAssemblyFromFile を使用して、各ファイルを独自のアセンブリにコンパイルします。
- modifiedAssembly.GetType(targetType.FullName) が存在する場合、それは targetType のソース ファイルです。
問題は、ステップ 2 で何の説明もなくコンパイル エラーが発生することです。
- (0,0): エラー:
- (0,0) : エラー : at (wrapper managed-to-native) System.Reflection.Assembly:GetTypes (bool)
- (0,0) : エラー : at (wrapper managed-to-native) System.Reflection.Assembly:GetTypes (bool)
- 等
これは、現在のアセンブリまたはアプリ ドメイン、またはコンパイルしようとしている正確な型が既に含まれているものが原因である可能性があると思いますが、それは単なる推測です。これらのエラーの原因や回避方法を知っている人はいますか?
編集: ステップ 2 のメイン コードは次のとおりです。
c# - エラーと警告メッセージを英語で表示するように CodeDomProvider コンパイラに指示しますか?
実行時にコードをコンパイルする機能を使用していますが、システムの既定の言語を使用する代わりに、コンパイラ エラーを英語System.CodeDom
で表示するコンパイラ パラメーターまたはその他の回避策を指定できないかと考えています。
ただし、MSDNのドキュメントでは、表示された言語に関連するものは見つかりません。
プロジェクトをビルドするときにVisual Studio IDEで特定の言語でコンパイラ エラーを表示したい場合、現在のカルチャを変更してから、自分のアプリケーションと自分からコンパイルしているファイル内にカルチャを設定しようとしました。第二に、自動化されたコード生成 (インポート、参照、およびCodeDomProvider
コンパイラーを呼び出すときのコード) が必要になる可能性があるため、このようなトリックを回避することを好みます。
c# - 加算代入演算子はどのように動作しますか
加算代入演算子はここでどのように動作しますか -
f# - Typeprovider からアセンブリを動的に読み込む
ユーザーが型を指定できるようにするために、作業中の型プロバイダーに機能を追加しようとしています。型プロバイダーはジェネリック メソッドを提供できないため、その型を持つアセンブリを参照するしかないようです。
Owin ライブラリの型を使用してこの概念実証を試みましたが、提供された型を使用しようとすると問題が発生します。
ファイルが明らかに存在しているにもかかわらず、ファイルが見つからない、またはCSharpCodeProvider
使用しているファイルがエラーになると表示されます(以前に誤ったファイルパスに対して行ったことがあります)。別の非型提供プロジェクトでこの問題を再現しようとしましたが、そこで動作します。
このプロジェクトのコードはこちら (input-type ブランチ): https://github.com/isaksky/routeprovider/tree/input-type
メインの RouteProvider ソリューションを開き、DebugOwin サンプルを実行してデバッグすることで問題を確認できます (RouteProvider を使用するサンプル ソリューションの Visual Studio の新しいインスタンスが開きます)。
c# - C# プロジェクトを動的に実行する方法
ユーザーが CSharpCodeProvider クラスを使用して独自の動的スクリプトを作成および実行できる C# Winforms アプリケーションをコーディングしています。
これは単純なコード (文字列として) と複数のクラス ファイル (外部ファイル) で正常に機能していますが、C# プロジェクト全体をロードしてコードを正常にコンパイルして呼び出す方法がわかりません。
いくつかの調査を行いましたが、チュートリアルやサンプル コードなどの必要な情報が見つかりません。
コンパイルして呼び出すC#プロジェクトの例として、単純なフォームとボタンを備えたWinFormsアプリケーションを使用しています。
C# プロジェクト全体を正しくコンパイルして呼び出すために追加する必要があるソース ファイルを教えてください。.resx ファイルと .Designer.cs ファイルを含める必要がありますか? また、追加する必要がある特定の参照アセンブリはありますか?