問題タブ [dynamic-compilation]
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.
grails - grailsvaadinプロジェクトで自動再コンパイルを有効にする
grailsvaadinプロジェクトがあります。自動再コンパイル機能は、国際化を使い始めるまではうまく機能していました。それ以降、変更を再コンパイルするにはサーバーを再起動する必要があります。
何か案が ?
java - クラスをコンパイルしましたが、それはどこにありますか?
私は Java の専門家ではありません。また、動的に生成されたコードをコンパイルして実行するという概念全体にまったく慣れていません。これは、他の言語、特に Javascript や PHP などのスクリプト言語では非常に単純です。
私はこのコードのスニペットに従っています: http://www.java2s.com/Code/Java/JDK-6/CompilingfromMemory.htm そして私はこのようなものを作りました:
文字列コードが次のようなものだと想像してみてください
ClassNotFoundException をスローする Class.forName まではうまく機能します。スニペットから何か重要なものを切り取ったように見えないので、私は困惑しています: それで、クラスはコンパイルされましたが、どこに行ったのですか?
私は別のクラスローダーの使用について何かを読みましたが、私が言ったように、私はこれらすべてのものにかなり慣れていないので、どこに向かうべきか、どのように使用するべきか、そしてClassLoaderの独自の拡張をどのように定義すればよいかわかりません. 私が知っている唯一のことは、私にはすべてが非常に複雑に見えるということです...
Windows 7 および JDK 1.7 での Eclipse Indigo の使用。
asp.net-mvc-3 - MEFとMVC 3 - mefコンテナから埋め込みビューを動的にロードする方法は?
MEF を使用する MVC 3 アプリケーションを構築しています。主なアイデアは、モデル、コントローラー、およびビューが実行時に mef コンテナーから動的に読み込まれるプラグイン メカニズムを持つことです。
各プラグイン/モジュールは 2 つのアセンブリで構成されています。
- Module1.Data.dll (モデルの定義を含む)
- Module1.Web.dll (コントローラーとビューを含む)
Web アプリケーションの bin 内の Plugins ディレクトリに配置されます。
- WebApp/Bin/Plugins/Module1.Data.dll
- WebApp/Bin/Plugins/Module1.Web.dll
- WebApp/ビン/プラグイン/Module2.Data.dll
- WebApp/ビン/プラグイン/Module2.Web.dll
- WebApp/ビン/プラグイン/ModuleCore.Data.dll
- WebApp/ビン/プラグイン/ModuleCore.Web.dll
- 等...
他のすべてのモジュールによって参照されるコア モジュールもあります: ModuleCore.Data.dll およびそれぞれ ModuleCore.Web.dll。
次に、Global.asax で、次のようにコンテナーがビルドされます。
CustomViewEngine が作成および登録され、モジュール アセンブリでビューを検索するために使用されます。
コンテナからコントローラをロードするためのコントローラ ファクトリ:
また、コンテナーからアセンブリを取得するためのカスタム仮想パス プロバイダー:
これで、プラグ可能なモデル、コントローラー、およびビューを処理するためのインフラストラクチャ全体の準備が整いました。これですべてが機能します... 1 つのことを除いて -強く型付けされたビュー。
問題をより詳細に説明するために、シーンを準備しましょう。
- UserDTO モデルは Module1.Data.dll にあります
- ShowUserController.cs は Module1.Web.dll/Controllers/ にあります。
- Index.cshtml は Module1.Web.dll/Views/ShowUser にあります (@model Module1.Data.UserDto が宣言されています)
次に、次のことを行います。
- アプリケーションを実行し、HOST/ShowUser/Index に移動します (アクション メソッド Index が ShowUserController で実行され、ビュー Index.cshtml がフェッチされます)。
- ビュー Index.cshtml がフェッチされた後、コンパイルが開始されます (RazorBuildProvider による)。
- 例外がスローされます: 「名前空間 Module1 でデータ型が見つかりません」、つまり、ビューを動的に構築するときに UserDTO が見つかりませんでした
そのため、コンパイラ/ビルダーは Module1.Data.dll の bin/Plugins フォルダーを調べなかったようです。
質問/問題:このディレクトリが AppDomain.CurrentDomain.AppendPrivatePath メソッドによって追加されたにもかかわらず、ビルダーが bin/Plugins フォルダーを調べなかったのはなぜですか? プラグインフォルダーが考慮されるように、アセンブリビルダーのプライベートパスを一度追加する方法は??
標準のものをオーバーライドする CustomRazorBuildProvider を作成することで、いくつかの回避策を実行できました。
ただし、このソリューションの欠点は、ビューがコンパイルされるたびに Plugins フォルダー内のすべてのアセンブリへの参照を追加する必要があることです。これにより、後で多くのプラグインが使用されるときにパフォーマンスの問題が発生する可能性があります。
より良い解決策はありますか?
grails - grails の spring-mobile プラグインによる動的コンパイルの失敗
私は grails に spring mobile plugin 0.3 を使用しています。任意のコントローラーで使用しているため、そのコントローラーで変更を加えてブラウザーでアプリケーションの URL を更新すると、コンパイルがエラーで失敗します。
withMobileDevice はプラグインによって提供されます。
このプラグインを使用して動的コンパイルをサポートし、プラグインを使用してコントローラーで変更が行われるたびにサーバーを再起動することなく、構成に変更を加えることができます..ありがとう
c# - 動的に作成されたASCXコントロールのロード(コードを介して)
私はWeb User Controls
コードを介して作成しています(C#コードのライトアウトマークアップ、コードビハインド、およびデザイナーファイルをコールバックでディスクに保存します)。コントロールはすべて正常に作成されます。それらを自分のWebプロジェクトに追加して、ページに配置することができます。
それを使用してコントロールをロードしようとすると、次のLoadControl(path)
ようになります。
これは、コントロールがまだコンパイルされていないためです。
しかし、私の要件は、ソリューションを再コンパイルせずに動的にコントロールをロードすることです。
コントロールファイルを作成するときにのみユーザーコントロールをコンパイルするにはどうすればよいですか?これが唯一の方法のようです。
編集:-私の推測では、ファイルはまだコンパイルされていないため、実行時にロードすることは許可されていません。コンパイラを使用してコードファイルをコンパイルしようとしましたCodeDom
。好き:
しかし、それは不平を言うcannot find metadata file Telerik.Web.Design.dll
などです。ホストされているシステムでは異なる可能性があるため、telerikパスをハードコーディングしたくありません(bin
現在のWebアプリのものですが)。またMyCurrentDll.dll
、コードファイルのコンパイル元のファイルのdllもあります。どうすればこれを解決できますか?
私の考えは、コードファイルをコンパイルして動的に作成し、それをWebアプリケーションのディレクトリdll
にコピーすることです。bin
それは私が最初に述べた問題を解決するかもしれません。
編集2:-ヒットして試用した後、コードファイルを動的にコンパイルして生成することができますdll
。dllを生成しbin
てアプリケーションに配置した後でも、を使用してユーザーコントロールをロードできませんvirtual path
。私は次のアプローチを試しました:
この後、Ctrlキーが読み込まれます。そのプロパティを割り当てId
て、コントロールに追加しますasp.net Panel
。しかし、ポストバック後は表示されません:(
ここで、動的にコンパイルされたdllのタイプをランタイム(appdomainなど)で使用できるようにする必要があります。これにより、仮想パスを使用してコントロールをロードすると、正しくロードさHtmlParseException
れ、ロードコントロールフォームType
が表示されない理由がわかりません。上。
PS:-をLabel
使用してコントロールをロードしましたType
が、正常に動作しています。
interpreter - Cg で使用される動的コンパイルと一部のスクリプトで使用されるインタープリターの違いは何ですか?
Cg のチュートリアルでは、Cg は動的コンパイルを使用すると書かれています。最初のパスですべてのコードをコンパイルする必要がないという点で、コンパイラーはインタープリターといくつかの類似点があることに気付きました。エラーが存在する場合は、exe の実行時にそれを見つけることができます。
しかし、それらの違いは何ですか。誰か私に詳細を教えてもらえますか?どうもありがとう。
c - C コード内のコンパイル オプションを取得する
アプリケーションに GUI を書いていますが、主な開発者は、GUI が残りの部分でコンパイルされるかどうかを Makefile に設定したいと考えています。すべての GTK+ コードを別のファイルに入れていますが、メイン ファイルでは、アプリケーションが GUI でコンパイルされているかどうかをテストする必要があります。どうすればこれをテストできますか?
例えば:
c# - CompilerOptions.EmbeddedResourcesがリソースファイルをアセンブリに添付しないのはなぜですか
CSharpCodeProviderを使用してexeを生成しようとしています。exeはWindowsフォームプロジェクトになります。exeには、生成されたアセンブリによって実行時にアクセスされるリソースが必要です。ここで、そのリソースを生成するために、ResourceWriterクラスを使用し、それをコンパイラオプションであるembeddedResourcesに追加します。しかし、それは機能していないようで、MissingManifestResourceExceptionが発生します。
コードは次のとおりです。
私はこれを1週間以上試しているので、誰かが私を助けてくれることを願っています。ありがとうございました。
c# - 文字列を C# 実行可能コードに変換する
私には小さな解決策があります。このトピックについて調査しましたが、探しているものを正確に見つけることができませんでした。例は、メソッド全体を文字列または完全な式でコンパイルすることでした。私が欲しいのは、Newtonsoft.jsonを使用してjsonからデータを抽出しようとしているこのコードがあると言うことです。
このセクションを通過したいのですが、
文字列として、C#コードに変換して、jsonファイルのフォーマットが互いに非常に異なるため、その値を動的にすることができます。
編集:
以下は、私が使用しているjson文字列です。
方法はありますか、それとも可能ですか??
api - Haskell GHC API エラーでの動的コンパイル
ここにあるチュートリアルに従って、GHC APIを使用して基本的な動的コードのコンパイルを機能させようとしています。
このコード:
Test.hs という別のファイルから印刷機能を取得し、それをロードして印刷機能を実行する必要があります。
次のコマンドを使用して、ghc バージョン 7.4.1 でコードをコンパイルします。
ただし、次のエラーが表示されます。
私は何を間違っていますか?私は GHC API のドキュメントを確認しましたが、この種のことのほとんどを理解するには十分に精通していません。