問題タブ [satellite-assembly]
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 - .net サテライト リソース dll エディター
コンパイルされた .net マネージド アセンブリを編集するための無料のリソース エディターはありますか?
クライアントの 1 人が、アプリの Windows フォーム コントロールのテキストを編集するように要求しました。すべてのテキスト (文字列) を別のリソース ファイルに入れました。私はVisual Studioでそれらを編集できますが、クライアントがそれらを編集するには、dllを逆コンパイルして結果のrcファイルを編集し、再度コンパイルする必要があると思います。
自動的に実行できるリソース ファイル エディターが存在するかどうか疑問に思っていました。
resources - Wix のサテライト アセンブリから文字列リソースを読み込んでいますか?
WXS/WXL ファイルの文字列をハードコーディングするよりも、WIX を介してリソース DLL からリソースを読み取ることは可能ですか? サテライト DLL にリソースがあり、それらを WXS/WXL ファイルにコピーしてハードコーディングするよりも効率的なものが必要です。
ありがとう
.net - 再コンパイルせずにサテライト アセンブリを更新する
他の多くの Web アプリケーションで使用されるクラス ライブラリ プロジェクトがあります。そのクラス ライブラリのサテライト アセンブリを作成したいと考えています。リソース文字列の 1 つを変更するときに、クラス ライブラリを再コンパイルまたは再デプロイする必要はありません。
衛星の組み立ての概念は理解できたと思いますが、それを自分の好きなように使用できるように構築する方法がわかりません。
既定では、Visual Studio のプロジェクトにリソース ファイルを追加すると、そのビルド アクションが "埋め込みリソース" に設定されます。
だから、私のプロジェクトはと呼ばれてMyProjectいます。という名前のデフォルトのリソース ファイルと というMyProject.Resources.resx別のリソース ファイルがありますMyProject.Resources.fr.resx。
ビルドするMyProject.dllと、「fr」サブフォルダーとMyProject.resources.dll.
したがって、メイン アセンブリ (MyProject.dll) には埋め込みリソースとして設定されているため、既定のリソースが含まれていることがわかります。ただし、アセンブリ全体を再デプロイしないとリソースを更新できません。これは私にとっては良くありません。
AL.exe を使用したアセンブリのパッケージ化について MSDN で読みましたが、まだ理解できません:
リソース ファイルをメイン アセンブリとは別のファイルとして出力するように Visual Studio を設定するにはどうすればよいですか? MSDN で読んだことによると、.resource ファイルが必要ですが、よくわかりません。
思い通りにできたら、リソース ファイルを変更したい場合はどうすればよいでしょうか。Visual Studio でリソースを更新し、プロジェクトをビルドして、リソース DLL のみをターゲット サーバーにコピーすると思いますが、それでよろしいですか? それらをGACに直接コピーすることはできMyProject.dllますか?それでもすべて正常に動作しますか?
ありがとう!
c# - プロジェクト間でリソースを共有するための戦略
多くのプロジェクト (一部の Web アプリ、一部の win フォーム、その他のクラス ライブラリ) で使用される Core と呼ばれる中央ライブラリ (DLL) があります。
一部のリソースはコア ライブラリに保存されます。
Core ライブラリのリソース ファイルを使用する必要がある場合、カルチャ情報が何であるかを知る必要があります。Win フォーム アプリで使用されることもあれば、Web アプリで使用されることもあるため、HttpContext または CurrentThread からのカルチャを実際に使用することはできません。
これはよくある問題だと思うので、疑問に思っています:
DAL dll と UI プロジェクトの間でカルチャ情報をやり取りするための適切な戦略は何ですか?
msbuild - 衛星アセンブリのターゲットフレームワークバージョンを決定するものは何ですか?
衛星アセンブリのターゲットフレームワークバージョンを決定するものは何ですか?
ログファイルを見ると、ResGen.exeとAl.exeを実行して衛星アセンブリが構築されていることがわかりますが、結果のアセンブリのターゲットフレームワークを決定するものがわかりません。
バックグラウンド
サテライトアセンブリをビルドサーバーでビルドすると.NET4.0ランタイムがターゲットになり、開発用コンピューターでコンパイルすると.NET2.0ランタイムがターゲットになるという問題を解決しようとしています。ソリューションの残りの部分は.NET2.0ランタイムを対象としており、実行可能ファイルが.NET 4.0ランタイムを対象としている場合、実行可能ファイルはサテライトアセンブリをロードしません。
ビルドサーバーでmsbuildを使用してプロジェクトを「手動で」ビルドしようとしました。これにより、.NET2.0ランタイムを対象としたサテライトアセンブリも作成されます。
自動ビルドサーバーを使用してビルドすると、間違ったターゲットランタイムバージョンの4.0しか取得できません。
.net - サテライト アセンブリの作成
コマンド プロンプトからal.exeを使用してサテライト アセンブリを作成しようとすると、次のエラーが発生します。
ALINK: エラー AL1019: アセンブリの作成中にメタデータ エラーが発生しました -- アクセスが拒否されました。
この問題を解決するにはどうすればよいですか?
c# - サテライト アセンブリの生成時の警告 AL1073
Visual Studio 2010 で、プロジェクトのローカライズされたサテライト アセンブリを生成すると、コンパイラの警告が表示されます。Windows 7 64 ビットを実行しています。
プロジェクトは x86 でビルドされています (Oracle ODP.NET を介して、管理されていない DLL を間接的に参照する必要があります)。
MSBuild ログは次の警告を生成します。
(GenerateSatelliteAssemblies ターゲット) ->
ALINK : 警告 AL1073: 参照されたアセンブリ 'mscorlib.dll' は別のプロセッサ [xxx.csproj] をターゲットにしています
生成元のアセンブリと同じバージョンのフレームワークを強制的に使用する方法はありますか?
ビルドで警告をゼロにしたいので、これは非常にイライラします。これは常に存在します。
c# - プラグイン DLL のローカライズされたリソースの c# パス
私の C# アプリケーションには、構成 XML ファイルで指定されたさまざまなパスからプラグイン DLL をロードするプラグイン メカニズムがあります。私のアプリケーションはローカライズ可能です。メイン アセンブリ (*.exe) には、ローカライズされた言語のサテライト アセンブリが、exe の横に標準の .NET の方法 (例: .\en\en-US\main.resources.dll; .\de\de_DE\main.resources.dll; など) で含まれています。
プラグインのローカライズを開始し、サテライト アセンブリを exe の隣のフォルダーに配置する必要があることを発見する必要がありました。プラグイン DLL の隣に置くと、リソース マネージャーはそれを見つけられません。
ただし、私のプラグインは交換可能であり、異なるフォルダーにある可能性があるため、ローカライズされたリソース アセンブリをexeではなくプラグインの隣に配置することを強くお勧めします。
これは可能ですか?
私が受け入れることができる別の方法は、ローカライズされたリソースを DLL に埋め込むことです。これは可能ですか??
乾杯、フェリックス
.net - 既存のアセンブリ (特にアセンブリ名) のプロパティを変更できるツールはどれですか?
Silverlight アプリケーションを難読化しようとしています。2 つのアセンブリが含まれており、難読化ツールの「アセンブリのマージ」機能を使用しています。メイン アセンブリ (A1) とマージされるアセンブリ (A2) にはリソースがあり、これはローカライズされたアセンブリであるため、サテライト カルチャ固有のアセンブリ名に従って名前が付けられた、対応するローカライズされたアセンブリ (A2loc) があります。
ただし、マージ中に A2 (リソースを含むアセンブリ) は M(A1+A2) になり、A2localized は M のサテライト アセンブリになることができなくなります。古い A2 名が付けられているためです。動作します。
質問:たとえば、既存のアセンブリを取得してそのアセンブリ名を変更するには、どのツールを使用できますか?
サテライト アセンブリ A2loc の名前を M アセンブリ名と一致するように単純に変更すると、アプリがロード時にクラッシュし始めます。
誰かがより良いアプローチを提案できるかもしれないので、プロセス全体を説明します。