C# で記述された Windows サービスがあります。C# コードを動的に生成し、abc.dll、xyz.dll などのアセンブリにコンパイルします。これらのアセンブリは後で実行のために読み込まれます。コンパイル時に、/keyfile: mykeyfile.snk" をコンパイラ オプションの 1 つとして System.CodeDom.Compiler.CompilerParameters クラスに渡します。問題は、厳密な名前の検証に失敗したために、これらのアセンブリの一部を読み込めないことです。
テスト システムから生成されたアセンブリを取得し、sn,exe でチェックすると、アセンブリの約 6 分の 1 が遅延またはテスト署名されていることがわかります。sn.exe -v xyz.dll を実行すると、xyz.dll は遅延署名またはテスト署名されたアセンブリであることがわかります。明らかに読み込みに失敗します。
一部のアセンブリが正しく署名されていないのはなぜですか?