アセンブリにも署名する必要がありますか?
これが問題だと思います。ClickOnce では、そのマニフェストが署名されている必要があります (選択の余地はありません) が、アセンブリ自体に署名する必要はないと思います (ほのめかしたように) が、Windows 8 にはこの要件がある可能性があります。
署名されていないアセンブリは変更される可能性があり、参照アセンブリはその中のコードを忠実に読み込んで実行します。質問はありません。そのため、悪意のあるエンティティがディスク上の 1 つ以上のアセンブリを置き換えて、アプリケーションを危険にさらす可能性があります。ClickOnce を使用すると、デジタル証明書 (ターゲット上に事前に存在する ClickOnce マニフェストに署名するために使用される証明書) を介してアクセス許可が (暗黙的に) 付与されているため、システム権限の低いユーザーが他の方法では実行を許可されないタスクを実行できます。マシン、またはターゲット マシンのルート証明書を介して信頼されている)。したがって、アセンブリに署名しないことにより、セキュリティ チェーンに脆弱なリンクが存在し、Windows 8 ではこれが (既定で) 強化されている可能性があります。
アセンブリとして署名するには、次を参照してください:方法: アセンブリに署名する (Visual Studio)
注意。dotNet アセンブリ署名は、通常、厳密な名前付けと呼ばれます (このコンテキストでは、「署名」と「厳密な名前付け」という用語は同じ意味で使用されているようです)。
注意。厳密な名前のアセンブリは、別の証明書で署名できますが、他の厳密な名前のアセンブリのみを参照できます。これは、厳密な名前ではないサード パーティのアセンブリへの参照がある場合に問題を引き起こす可能性があります。署名されていないコードをリリースすることは悪い習慣であるため、これはまれです。1 つのオプションは、sn.exe を使用して独自の証明書でアセンブリに署名することです。