署名済みの Windows ランタイム コンポーネントを出荷しています。現在、次のように winmd に署名しています。
C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools\sn.exe -R MyComponent.winmd mykeypair.snk
これには、最悪の場合、ハードコードされたパスが必要です (64 ビットを使用してビルドし、正確に v8.0A を使用していると仮定します)。または、せいぜい、ビルドを実行する前に環境変数をセットアップする必要があります。
Visual Studio では、Windows ランタイム コンポーネントのプロジェクト ページに「署名」というセクションもあります。署名ボックスをチェックして適切なキーファイルを選択すると、正常に動作するように見えますが、適切に署名されません。
sn -vf MyComponent.winmd
Microsoft (R) .NET Framework Strong Name Utility Version 4.0.30319.17929
Copyright (c) Microsoft Corporation. All rights reserved.
MyComponent.winmd is a delay-signed or test-signed assembly
この問題への言及をいくつか見つけましたが、実際のバグ レポートや、これが実際の問題であるという確認は見たことがありません。
署名されていないコンポーネントではなく、署名されたコンポーネントを出荷する理由は、コンポーネントを他の厳密な名前のコンポーネントから使用できるようにするためです。コンポーネントが署名されていない場合、これは不可能です。
この問題のより良い回避策はありますか? それとも、署名が期待どおりに機能しない原因となっている何か間違ったことをしているのですか?