私は Visual Studio 2012 を実行しており、バックエンド Web サービスとデスクトップ ソフトウェアを別々のソリューションで作成しています。デスクトップ ソフトウェアは管理者特権で ("管理者として") 実行する必要があるため、管理者特権の Visual Studio インスタンスでデスクトップ ソリューションを実行する必要があります。どちらのソリューションにも、署名済みライブラリ プロジェクトが含まれています。
昇格せずに Visual Studio インスタンスで Web サービス ソリューションを開くと、次のようなビルド エラーが発生します。
次のキー ファイルをインポートできません: Redacted.pfx。キー ファイルは、パスワードで保護されている場合があります。これを修正するには、証明書を再度インポートするか、VS_KEY_Redacted というキー コンテナー名を使用して証明書を厳密な名前の CSP に手動でインストールします。
それを実行してこれを修正しようとすると、キーが既に存在するというエラー メッセージが表示されて失敗します。
PFX ファイルを除外してから再インクルードしようとすると、正しく配置されませんが、[プロジェクト プロパティ] → [署名] の [厳密な名前のキー ファイル] ドロップダウンが空白になります。これに続いて、Web サービス ソリューションがビルドされますが、(昇格された) デスクトップ ソリューションでは、「アセンブリの生成に失敗しました -- 参照されたアセンブリ '編集済み' に厳密な名前がありません」というエラーが表示されてビルドが失敗するため、ライブラリが署名されていないようです。
Web サービス ソリューション内のドロップダウンから PFX ファイルを再度選択しようとすると (パスワードを再入力すると)、次のようになります。
キーのインポート中にエラーが発生
しました 存在しないトークンを参照しようとしました
(昇格された) デスクトップ ソリューションからの PFX ファイルの設定は機能しますが、正方形に戻ります。
昇格に応じて、Visual Studio はさまざまなキー ストアを調べて、PFX のロックを解除するものにアクセスできるようです。この問題を回避するには、昇格した Visual Studio の両方のインスタンスを実行する必要がありますか? または、どうにかして同じ場所を参照するように指示できますか?