Microsoft Azure Web サイトへ簡単に発行できるようにする

SPECIAL


Visual Studio 2012 で Microsoft Azure Web サイトへ簡単に発行できるようにする

Microsoft Visual Studio 2012 を使って Microsoft Azure Web サイトへアップロードするときに、最初は FTPS を設定して「発行」を行っていたのですけど、発行するたびに毎回パスワードを入力する必要があり、それが少し手間でした。

そんな中、Windows Azure SDK for .NET をインストールすることで簡単に発行できるようになると知り、さっそくインストールしてみました。

Visual Studio 2012 からはリンク切れ

Visual Studio 2012 Ultimate では、プロジェクトの新規作成のところで "Cloud" というカテゴリが選べるようになっています。

そこから Microsoft Azure Web サイト用のプロジェクトを作成できるのですが、まだ Windows Azure SDK をインストールしていないときには、ここで「Windows Azure SDK for .NET の入手」という項目を選べるようになっていました。

この「Windows Azure SDK for .NET の入手」を選択することで Windows Azure SDK for .NET のダウンロードサイトへジャンプできるはずだったのですが、2014/05/06 現在、"404 Page Not Found" と表示されてしまってダウンロードできませんでした。

Microsoft Azure の Web サイトから Visual Studio 2012 用の Windows Azure SDK for .NET をインストールする

Windows Azure SDK for .NET をインターネットからダウンロードできないか探してみると、http://azure.microsoft.com/ja-jp/downloads/ からダウンロードできるようになっていました。

ここの ".NET" カテゴリにある "VS 2012 のインストール" のリンクから、Visual Studio 2012 用の Windows Azure SDK for .NET をダウンロードできます。

ダウンロードしたファイルを実行すると Web Platform Installer 4.6 が起動して、ここから "Windows Azure SDK for .NET (VS 2012) - 2.3" のインストールが始まります。この SDK には、次のコンポーネントが含まれている様子でした。

  • Microsoft ASP.NET and Web Tools 2013.1 for Visual Studio 2012 - Base Locale
  • Microsoft ASP.NET and Web Tools 2013.1 for Visual Studio 2012 JPN Language Pack
  • Microsoft ASP.NET and Web Frameworks 2012.2 (Default Locale) only
  • Microsoft ASP.NET and Web Frameworks 2012.2

Visual Studio のプロジェクトを Microsoft Azure にアップロードできるようにする

Windows Azure SDK for .NET (VS 2012) - 2.3 のインストールが終わると、Visual Studio 2012 の「発行」機能が拡張されて、Microsoft Azure へのアップロード設定が簡単にできるようになる様子でした。

特に "Cloud" カテゴリから "Windows Azure クラウドサービス" プロジェクトを作成しなくても、これまでのシンプルな Web サイトのプロジェクトでも、今まで通り「発行」を選択するだけで、これまでとは違った高度な発行機能を利用できます。

ここで特に便利なのが「インポート」機能です。

この機能を使うことで、Microsoft Azure のポータルサイトから「発行プロファイル」をダウンロードして、それを取り込むだけでアップロードの設定が終わります。

Microsoft Azure ポータルで目的の Web サイトを選択したら、ダッシュボードにある「発行プロファイルのダウンロード」をクリックします。それだけで、この Web サイトへアップロードするための情報が揃えられた *.PublishSettings ファイルをダウンロードできます。

このファイルを、Visual Studio 2012 の発行画面にある「インポート」機能を使って取り込むことで、目的の Microsoft Azure Web サイトへプロジェクトをアップロードできるようになります。アップロード方法は "FTPS" の他に "Web Deploy" も登録されます。

 

このように設定が簡単になるだけでなく、アップロードも簡単になります。

アップロード時に入力するパスワードを記憶させておけるので、毎回入力しないといけなかった手間もなくなります。もちろん「パスワードを保存する」のチェックを外せば、パスワードを毎回入力するようにもできます。

また、複数のプロファイルを選択することができます。プロファイル毎に発行先や Debug, Release などの構成を選択して登録しておけるため、試験環境と運用環境を分けて登録して、それらを簡単に切り替えてアップロードできるところも便利です。

 

Azure SDK for .NET のセットアップで出合ったエラーについて

Microsoft ASP.NET and Web Tools 2013.1 for Visual Studio 2012 - Base Locale がインストールできない

ところで Windows Azure SDK for .NET をセットアップしているときに、インストールや再インストールが失敗してしまったことがありました。

具体的には、Windows Azure SDK for .NET (VS 2012) - 2.3 をインストールするために Web Platform Installer 4.6 を実行している最中に PC がハングアップしてしまい、再インストールし直してみても、どうしても "Microsoft ASP.NET and Web Tools 2013.1 for Visual Studio 2012 - Base Locale" が正常にインストールできなくなってしまいました。

 

Windows Azure SDK for .NET や Microsoft ASP.NET and Web Tools 2013.1 for Visual Studio 2012 を単体でインストールし直してみたりしてもダメで、何度やっても次のようなエラーメッセージが表示されてしまいます。

The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is 2330.

Windows Azure SDK for .NET ではいろいろなパッケージをまとめてインストールするみたいで、それらを修復したり再インストールしてみたりしたのですけど成功しませんでしたが、原因は結局のところ、ファイルシステムのインデックス構造が破損していたために、ファイルの読み書きが正しくできなくなっていたことが原因でした。

Windows の機能で普通にドライブのエラーチェックを行うことで、インデックス構造が修復され、Microsoft ASP.NET and Web Tools 2013.1 for Visual Studio 2012 が使うファイルが正しく読み書きできるようになりました。そしてこれで、このコンポーネントのインストールが正常に行えるようになりました。

Web プロジェクトの発行時にエラーになる

Windows Azure SDK for .NET (VS 2012) - 2.3 が正しくインストールできた後も、プロジェクトをビルドするときに、次のようなエラーが発生することがありました。

System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.Web.XmlTransform, Version=1.4.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.

これはどうやら Windows Azure SDK for .NET - 2.3 のインストールが不完全か何かで発生しているエラーだそうで、Azure SDK for .NET を http://azure.microsoft.com/en-us/downloads/archive-net-downloads/ からダウンロードしてインストールし直すことで解消しました。

 

また、Web プロジェクトを開いた時点で、次のようなエラーが発生するようにもなりました。

Web プロジェクト 'api.ez-net.jp' と Visual Studio を組み合わせて使用するための Web コンポーネントが見つかりません。Web Platform Installer を使用して、Web コンポーネントを今すぐダウンロードしてインストールしますか?

Razor 構文 3.0.0.0 を含む ASP.NET Web ページ

このエラーは Visual Studio 2012 Ultimate を DVD からインストールして直ぐの状態で Microsoft Azure SDK for .NET - 2.3 をインストールすると発生するようです。これについては Visual Studio 2012 に、現時点で最新の Update 4 をダウンロードしてインストールすることで解消できました。