私は C# .NET アセンブリ (名前: A.exe) を開発しています。このアセンブリは遅延署名してから、サード パーティの会社によって完全に署名される必要があります。署名を遅らせるために、公開鍵を使用します。アセンブリ A は、共通ライブラリの一部であるアセンブリ B.Core.dll、B.Common.dll、B.Logging.dll を参照します。B アセンブリは遅延署名されていないため、ildasm/ilasm を使用して分解し、遅延署名付きで再組み立てします。A.exe と B.Core.dll、B.Common.dll、B.Logging.dll を送信しましたが、これらは完全に署名されていますが、A を起動すると次のエラーが表示されます:
ファイルまたはアセンブリを読み込めませんでした 'Assembly B1 PublicKeyToken= A.exe
は遅延署名されたアセンブリ (Strong Name プロパティが True に設定されている) を参照しているため、この問題は A.exe に関連するものではありませんが、原因は B.Core にあると思われます。
実際、B.Core は B.Common と B.Logging を参照しますが、B.Common と B.Logging は互いに独立しています。
エラーの原因は、B.Core が最初に署名されていない B.Common アセンブリを使用してビルドされ、その後、3 つのアセンブリすべてを逆アセンブルして再アセンブルし、参照が変更されなかったことである可能性があります... 問題を解決するために、私が行ったことA のビルド後の手順として、4 つのアセンブリすべてを 1 つの遅延署名付きアセンブリにマージすることを考えています。うまくいくと思いますか?
B.Core は .NET MEF を使用して、A からエクスポートされたインターフェイスを動的にロードすることに注意してください。このプロセスに問題はありますか?
よろしくお願いいたします。
質問する
177 次