環境
- Windows 10 Pro
- Visual Studio 2015 Community
現象
環境を Windows 10 (新規)に移行して Visual Studio 2015 を入れたのですが、以前のプロジェクトを編集していると一部のプロジェクトでアセンブリ署名がうまく設定されない現象に出くわしました。
原因を探るために新規プロジェクトを作成して試してみました。今回はコンソールアプリケーションです。プロジェクトを作成しただけで特に何も追加していません。
プロジェクトのプロパティを開き、アセンブリの署名キーを作成します。
ファイル名とパスワードを入力します。
しかし、「操作を完了できませんでした。アクセスが拒否されました。」のエラーメッセージが出てしまいました。
プロジェクトにもキーファイルは追加されていません。
ただ、エクスプローラーを見るとファイルだけは作成されているようです。
試しに、このpfxファイルを参照して設定してみます。
作成されたpfxファイルを選択します。
先ほど入力したパスワードを入力します。
しかし今度は「存在しないトークンを参照しようとしました。」というエラーメッセージが表示されました。
もちろん、キーファイルは設定されていません。
しかし、今度はプロジェクトには追加されているようです。
解決方法
正規の解決方法なのかはわかりませんがうまく対応できたので手順を載せておきます。
いろいろ調べてみると「C:ProgramDataMicrosoftCryptoRSAMachineKeys」フォルダに対して更新権限がないために起こっているエラーのようでした。試しに、そのフォルダに対してファイルを作成しようとしても作成できないことが確認できます。
ちなみに、正常に動作している環境ではファイルが作成できるようになっていました。
なぜこのような違いが起こったのかわかりませんが、とりあえずログインしているユーザーでフルコントロールを割り当ててみました。ちなみに正常に動作している環境のセキュリティを確認したところ、「Everyone」「Administrators」のみで、どちらもアクセス許可にはすべてチェックはついていませんでした。
セキュリティの設定を行ったところ、作成したプロジェクトでキーファイルが設定できるようになりました。
もともと正常に動作している環境、動作しなかった環境はいずれも「Windows 10 Pro」「Visual Studio 2015 Community」なのですが、Windows 10 に移行した際の手順によってもしかしたら違いが出たのかもしれません。
Windows 10 新規インストール | OK |
Windows 8.1 Professional から Windows 10 へアップグレード | OK |
Windows 8.1 Enterprise から Windows 10 へアプリ以外をアップグレード | NG |
また、今回は「C:ProgramDataMicrosoftCryptoRSAMachineKeys」フォルダにセキュリティのアクセス許可を追加しましたが、セキュリティ的にリスクがないかどうかはよくわかっていません。試される方はその点を認識したうえで行ってください。
]]>