Visual C# 2008 Express SP1 を Vista SP1にインストール

ちょっとC#のサンプルを作成しようと思い、Visual C# 2008 Express Edition SP1を導入しようとしたら以下の症状が発生。

  1. Visual C# 2008 Express Editionのインストール開始→途中でWindowsUpdateによる再起動→また最初から…
  2. (インストール完了後)新規プロジェクト作成時に『要求されたレジストリアクセスは許可されていません。』で作成できず

私のマシン(Vista Business SP1)がおかしいだけだったのかもしれませんが、それぞれの事象でいくつか検索がヒットしたので私の解決策をメモしておきます。

「Visual C# 2008 Express Editionのインストール開始→途中でWindowsUpdateによる再起動→また最初から…」

この事象はMSサイトからのWebインストールで発生しました。

具体的にはセットアッププログラム(vcssetup.exe)実行後に各種必要コンポーネントがDLされた後、個々コンポーネントのインストールが走るのですが、「.NET Framework 3.5 SP1」のインストールがいつまで経っても終わりません。とりあえず放置しておくと、WindowsUpdateの画面が立ち上がり再起動を促されます。ここは素直に再起動と…しかし、再起動後にログインしても、先ほどのインストールの続きが自動継続されません。仕方がないので再度セットアッププログラムを実行すると、正常にインストールが完了したコンポーネントはスキップされてまた先ほどと同じ「.NET Framework 3.5 SP1」で止まります。
ネットを検索すると、64bit版のVistaにインストールした人で同様の症状を発見、そちらの手順を参考に事前に「.NET Framework 3.5 SP1」(とLanguage Pack SP1)をインストールしておくことで解決しました。

「新規プロジェクト作成時に『要求されたレジストリアクセスは許可されていません。』で作成できず」

さて、無事にインストールが完了したので早速サンプルを作成しようとVisual C# Express Editionを起動し「新しいプロジェクト」作成を行おうとしたら今度はテンプレート選択後に以下のダイアログが表示されプロジェクトが作成できません。

先ほどのインストールで何度失敗したのが問題でレジストリがうまくかかれていない可能性があるんでしょうか?ということでまたネットで検索するとこちらはC#、ExpressEditionに限らずVisualStudioでも発生している模様です。具体的な解決策はMSDN Forumsのサイトに書いてあるのですが、ここではVisual C# 2008 Epress Edition限定で書いておきます。

まず、MSサイトから「SubInACL」をDLし、インストールします。
次に「SubInACL」インストール先のディレクトリ(通常はC:\Program Files\Windows Resource Kits\Tools)に以下内容のファイルを作成します(ここではファイル名を「fix.bat」としておきます)。

————————————————
subinacl /subkeyreg HKEY_CLASSES_ROOT\.csproj /grant=administrators=f /grant=system=f /grant=users=r
subinacl /subkeyreg HKEY_CLASSES_ROOT\VCSExpress.csproj.9.0 /grant=administrators=f /grant=system=f /grant=users=r
————————————————
※1 2行です
※2 VistaはUACの関係でProgramFiles配下へのファイル作成は管理者権限が必要になります。予めデスクトップ等で作成し、該当フォルダにコピーするのがおすすめです(コピー時に自動的に許可を求められます)。
※3 VB Expressの場合は.csproj→.vbproj,VCSExpress.csproj→VBExpress.vbproj等に変更すればいけるかもしれません(未検証ですので、上記MSDNサイトを参考にしてみてください)

最後に、「Visual C# Express」が起動してる場合は必ず終了させた上で「コマンドプロンプト」を管理者権限で起動し「上記フォルダ」に移動した後「fix.bat」を実行します(コマンドプロンプトを管理者権限で起動するには、スタートメニューのコマンドプロンプトを右クリックして『管理者として実行』で可能です)。

これで無事Visual C# Expressで新規プロジェクト作成を行うことができました。
が、何のサンプルを作るんだったか忘れてしまいましたね

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*