問題タブ [assembly-loading]
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.
.net - Tridion: パブリッシュ中に .Net dll を読み込めません
Newtonsoft.Json in my C# TBB
コンポーネントを処理し、Json データを生成するために.Net dll を使用しています。既にこの dll を に追加していGAC[Global Assembly Cache]
ますが、同様に機能します。しかし、時々うまくいかず、公開中に次のエラーが発生します。
JScriptException: Expression 'RenderComponentPresentation()' had error 'Could not load file or assembly 'Newtonsoft.Json, Version=4.0.5.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' or one of its dependencies. The system cannot find the file specified.'
しかし、Tridion でページをプレビューすると、問題なく動作します。この問題を修正するために、 を再起動しTridion Services
、再起動後にページを公開します。問題なく動作します。しかし、この問題は何度も繰り返され続けています。この問題を永久に解決する方法はありますか?
最近、すでに公開中のページを再度公開したところ、問題が再現できました。2 回目の公開試行では上記のエラーが返されましたが、2 回目の公開試行が失敗した後に最初の公開試行が終了し、Success
. この奇妙な動作の理由。
.net - 共有ホストでホストされる WCF サービス
.NET 3.5 サービスを使用して WCF を開発し、一部のデータをインターネットにインポートしました。
ローカルでは、IIS Express を使用してすべて正常に動作しています。サービスを共有ホストにデプロイし、ブラウザでサービス アドレスを指定すると、次の例外が発生しました。
ファイルまたはアセンブリ 'System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' またはその依存関係の 1 つを読み込めませんでした。システムは、指定されたファイルを見つけることができません。
私の環境は、32 ビット互換の .NET 3.5 を使用するように構成されています。
スタック トレースは次を示します。
[FileNotFoundException: Could not load file or assembly 'System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies. The system cannot find the file specified.]
System.ServiceModel.AsyncResult.End(IAsyncResult result) +11655726
System.ServiceModel.Activation.HostedHttpRequestAsyncResult.End(IAsyncResult result) +194
System.ServiceModel.Activation.HostedHttpRequestAsyncResult.ExecuteSynchronous(HttpApplication context, Boolean flowContext) +176
System.ServiceModel.Activation.HttpModule.ProcessRequest(Object sender, EventArgs e) +275
System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +68
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +75
それを解決する方法の手がかりはありますか?
asp.net-mvc - Razor MVCアプリケーションはFreeTextBoxの読み込みに失敗しましたが、FreeTextBoxがありません
MVC3 RazorアプリケーションをWebホストプロバイダーにアップロードしました(Visual Studio 2010の開発サーバーで正常に動作します)。
デプロイされたサイトで、
しかし、私は完全に困惑しています。私のアプリケーションにはFreeTextBoxが含まれていません。私はそのDLLを参照していません。残念ながら、「詳細」IISエラーには、そのDLLを誰または何がロードしようとしているのかさえ記載されていないため、どこから来ているのかわかりません。
トリプルチェックするために、検索マスクを使用して自分で作成したアプリのFreeTextBoxで検索を行いました。ソリューション全体で、VisualStudioは何も見つかりません。
ここで実際の解決策 それは確かに親アプリケーションのアセンブリを継承していました。あなたの提案によると、ケタンはこれを行うことでそれを解決しました:
unity-container - Unity のアセンブリ バインディング リダイレクトが機能しない
新しい MVC 4 Web サイトを作成しています。Unity.MVC3 ライブラリを使用して、MVC に組み込まれている DependencyResolver と統合したいと考えています。
また、以前のはるかに大規模なプロジェクトからいくつかのデータ アクセス DLL を参照したいと考えています。
私の問題は、Unity.MVC3 と古い DLL がそれぞれ異なるバージョンの Unity 1.2.0.0 と 2.1.505.0 に対してコンパイルされていることです。次のように、web.config ファイルにバインディング リダイレクトを作成してみました。
ただし、まだ次のエラーが表示されます。
アセンブリ バインディングのログ記録をオンにすると、最後の 2 行で次のように表示されます。
バインディング リダイレクトが尊重されないのはなぜですか? メジャー バージョンの競合のチェックを無効にする方法はありますか?
c# - .NET4.0アプリドメインでの.NET4.5を対象としたアセンブリの読み込み
システムに.NET4.0および.NET4.5がインストールされていると仮定します。
.NET4.0を対象として作成されたアセンブリから.NET4.5アセンブリをロードして操作することは可能ですか?
簡単に言えば、Assembly.Load
.NET 4.0コードから呼び出して、.NET 4.5ターゲティングアセンブリをロードできますか?
c# - LoadFrom 読み込みコンテキストで WPF リソースの読み込みが失敗する
次のような LoadFrom ローディング コンテキストを使用して、ネイティブ コードから相互運用シナリオで使用する WPF アセンブリがあります。
mydlls は、実行可能ファイルが置かれているフォルダーとは異なることに注意してください。これは、私もロードする通常の非 ui .NET dll に対しては正常に機能しますが、これを実行しようとするとエラーが発生します。AppDomain.CurrentDomain.AssemblyResolve イベント ハンドラーをアタッチし、読み込みに失敗したイベントを取得しました。ResolveEventArgs の名前は「mywpfstuff.resources」で、RequestingAssembly は空です。「mywpfstuff.resources」という名前のファイルがなく、このアセンブリを自分で解決する方法がわかりませんでした。
エラーを引き起こすコード行は InitializeComponent(); です。メインのユーザー コントロール コンストラクターを呼び出します。
内部 XAML (BAML?) メカニズムがいくつかのリソースを読み込もうとしているように思えますが、LoadFrom コンテキストの代わりにその標準の Load コンテキストを使用します。
この問題を回避する方法はありますか、できれば WPF に LoadFrom コンテキストを使用させるか、それが不可能な場合は手動でアセンブリを解決する方法はありますか?
c#-4.0 - AppBase から弱い名前のアセンブリを読み込む
実行時にアセンブリをロードしたい。そして、アセンブリについて私が知っている唯一の情報は、その名前 (弱い名前) です。弱い名前のすべてのアセンブリが AppBase に存在するという本の 1 つを読みました。実行時にこのアセンブリをロードする方法を知っている人はいますか?
ネットで見つけたコードは、アセンブリパスがわかっている場合はアセンブリをロードしていました。しかし、パスをハードコーディングしたくありません。
以下のコードを使用してアセンブリをロードしています。アセンブリ アセンブリ = Assembly.Load("RomanConverter"); CLR がアセンブリを読み込もうとすると、アセンブリが見つかりません。理由は、上記のコード行が、Roman Converter への参照を持たないコンソール アプリケーションによって呼び出されるためです。以下の場所でアセンブリを見つけようとします: (Fusion Log)
ログ: 新しい URL ファイルのダウンロードを試みています:///C:/Users/XYZ/documents/visual studio 2010/Projects/Algo/Algo/bin/Debug/RomanConerter.DLL。ログ: 新しい URL ファイルのダウンロードを試みています:///C:/Users/XYZ/documents/visual studio 2010/Projects/Algo/Algo/bin/Debug/RomanConerter/RomanConerter.DLL。ログ: 新しい URL ファイルのダウンロードを試みています:///C:/Users/XYZ/documents/visual studio 2010/Projects/Algo/Algo/bin/Debug/RomanConerter.EXE. ログ: 新しい URL ファイルのダウンロードを試みています:///C:/Users/XYZ/documents/visual studio 2010/Projects/Algo/Algo/bin/Debug/RomanConerter/RomanConerter.EXE.
しかし、私のアセンブリは別の場所に存在します。(Imp: ここでパスをハードコーディングできないか、相対パスを指定したくない)
reflection - ソリューションに存在するアセンブリに関する情報を取得する
シナリオ:ソリューションに存在する実行時にアセンブリをロードしたい。
ベロコードはCuurentAppDomainに存在しないため、機能しません。
また、参照されているアセンブリを検索する場合も、参照されていないため見つかりません。したがって、以下のコードも機能しません。
何か提案はありますか?
windows-runtime - Windowsストアアプリケーションの実行時にILを放出するためのIKVM.Reflection?
Marc Gravell による IKVM.Reflection に関する投稿を見ました。IKVM User's Guide で見つけたものは次のとおりです。
IKVM.NET を使用するには、主に次の 2 つの方法があります。
- 動的: このモードでは、Java クラスと jar を直接使用して、.NET ランタイムで Java アプリケーションを実行します。Java バイトコードはオンザフライで CIL に変換されるため、それ以上の手順は必要ありません。このモードでは、完全な Java クラス ローダー モデルがサポートされます。
- 静的: ...
WinRT アプリケーション内で IL を発行および実行するために使用したいと考えています。これが不可能な根本的な問題はありますか?Microsoft のポリシー、または IKVM からのリフレクションおよび IL Emitting コードの実行を妨げる技術的な制限のようなものですか?
それが不可能な場合、実行時にアセンブリをロードするためのオプションはありますか (外部サーバーでそれらを発行し、そこからローカル アプリ フォルダーにダウンロードすると仮定します)?
c# - Asp.netがdependentAssembly/codeBaseヒントを適用していない
互換性のない Razor 1.0 に依存しているため、RazorEngine を Razor 2.0 アプリケーションにデプロイできないという問題に対して、この回避策を実装しようとしています。
私が行ったことは、bin フォルダーに 1.0 と 2.0 の 2 つのディレクトリを作成し、それぞれの System.Web.Razor.dll ファイルをそれぞれに配置することです。次に、依存アセンブリ/コードベースのヒントを web.config に追加して、アセンブリ ローダーを正しい方向に向けました。
ただし、System.Web.Razor アセンブリに適用した codeBase オーバーライドを Asp.net に反映させることはできないようです。その結果、RazorEngine で使用するために System.Web.Razor 1.0.0.0 を読み込むことができません。
Web.config
System.Web.Razor 1.0.0.0 の Fusion アセンブリ読み込みログからの出力:
ログ: ユーザー = NT AUTHORITY\SYSTEM ログ: DisplayName = System.Web.Razor、バージョン = 1.0.0.0、カルチャ = ニュートラル、PublicKeyToken = 31bf3856ad364e35 (完全指定)
ログ: Appbase = file:///C:/apps/lr2/web/arcs/
ログ: 初期 PrivatePath = C:\apps\lr2\web\arcs\bin
ログ: 動的ベース = C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\a63cc915
ログ: キャッシュ ベース = C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\a63cc915
ログ: アプリ名 = 98966cc9
アセンブリの呼び出し: RazorEngine、Version=3.0.8.0、Culture=neutral、PublicKeyToken=9ee697374c7e744a。
ログ: このバインドはデフォルトのロード コンテキストで開始されます。
ログ: アプリケーション構成ファイルの使用: C:\apps\lr2\web\arcs\web.config
ログ: ホスト構成ファイルの使用: C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet.config
ログ: C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config のマシン構成ファイルを使用しています。
ログ: ポリシー後の参照: System.Web.Razor、Version=1.0.0.0、Culture=neutral、PublicKeyToken=31bf3856ad364e35
ログ: GAC ルックアップに失敗しました。
ログ: 新しい URL ファイルのダウンロードを試みています:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files/root/a63cc915/98966cc9/System.Web.Razor.DLL。
ログ: 新しい URL ファイルのダウンロードを試みています:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files/root/a63cc915/98966cc9/System.Web.Razor/System.Web.Razor .DLL.
ログ: 新しい URL ファイル:///C:/apps/lr2/web/arcs/bin/System.Web.Razor.DLL のダウンロードを試みています。ログ: 新しい URL ファイルのダウンロードを試みています:///C:/apps/lr2/web/arcs/bin/System.Web.Razor/System.Web.Razor.DLL.
ログ: 新しい URL ファイルのダウンロードを試みています:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files/root/a63cc915/98966cc9/System.Web.Razor.EXE.
ログ: 新しい URL ファイルのダウンロードを試みています:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files/root/a63cc915/98966cc9/System.Web.Razor/System.Web.Razor 。EXE。
ログ: 新しい URL ファイル:///C:/apps/lr2/web/arcs/bin/System.Web.Razor.EXE のダウンロードを試みています。
ログ: 新しい URL ファイルのダウンロードを試みています:///C:/apps/lr2/web/arcs/bin/System.Web.Razor/System.Web.Razor.EXE.
LOG: すべてのプローブ URL が試行され、失敗しました。
Asp.net が bin\1.0 を掘り下げようとしない理由は何ですか?
machine.config を確認しましたが、競合する assemblyBinding の兆候はありません。
助けてくれてありがとう!