Microsoft WebMatrix 3 を使用した Web 開発の学習を始めています。以前のバージョンを対象としたMicrosoft WebMatrix の紹介という本を使用していますが、多くの点は同じです。Microsoft ASP.NET Web ヘルパー ライブラリを使用しようとするとコンパイル エラーが発生しますが、その理由やトラブルシューティング方法がわかりません。具体的には、Video オブジェクトまたは LinkShare オブジェクトを使用しようとすると、コンパイラ エラー CS0103 が発生します。私は何日もインターネットを検索してきましたが、同じ問題を抱えて解決した人を見つけることができません。
エラーを再現する手順
- WebMatrix 3 を実行します。
- [クイック スタート] ページで、[新規]、[テンプレート ギャラリー] の順にクリックします。
- [空のサイト] を選択し、[次へ] をクリックします。「空のサイト」という名前の新しいサイトが作成されます。
- Default.cshtml ページを編集用に開きます。
- ASP.NET Web ページ (Razor) サイトでビデオを表示するチュートリアルに基づいて、ページの本文に次を追加します。
@Video.MediaPlayer(path: "myvideo.wmv", width: "400", height: "600", autoStart: true, playCount: 2, uiMode: "full", stretchToFit: true, enableContextMenu: true, mute: false, volume: 75)
- サイトを実行します。次のステートメントを含むエラー ページがブラウザーに表示されます。
「コンパイラ エラー メッセージ: CS0103: 名前 'Video' は現在のコンテキストに存在しません」
けっこうだ。NuGet を使用して Microsoft Web Helper Library を取得します。 - WebMatrix ウィンドウに戻り、[NuGet] をクリックします。
- WebMatrix パッケージ ソースを選択します。
次のエラー メッセージが表示されます。「Microsoft.AspNet.WebPages」のスキーマ バージョンは、NuGet のバージョン 2.5.40416.9020 と互換性がありません。NuGet を http://go.microsoft.com/fwlink/?LinkId=213942 から最新バージョンにアップグレードしてください。
[OK] をクリックしてエラーを無視し、続行します。その Web サイトにアクセスして指示に従ってみましたが、既に最新バージョンの NuGet for WebMatrix を持っています。 - 検索
Web Helpers
ボックスに入力し、Enter キーを押します。 - 「ASP.NET Web ヘルパー ライブラリ」を選択し、[インストール] をクリックします。インストールを確認し、EULA に同意します。「Microsoft.AspNet.WebPages」のスキーマ バージョンに関する同じエラーが表示されます。[OK] をクリックしてエラーを無視します。
- [閉じる] をクリックして NuGet ギャラリーを終了し、[OK] をクリックして残りのエラー ウィンドウを閉じます。
- サイトを実行します。以前と同じエラー メッセージが表示されます。
これは、Video オブジェクトのエラーを示しています。また、LinkShare オブジェクトを使用しようとすると、同じエラーが発生します。
環境情報
- OS: Media Center バージョン 6.3 (ビルド 9600) を搭載した Windows 8.1 Pro
- ブラウザ: Internet Explorer 11.0.9600.16476; 更新バージョン: 11.0.2 (KB2898785)
- WebMatrix バージョン 3.0 バージョン情報:
- ウェブマトリックス: 7.1.1932.0
- IIS エクスプレス: 8.0.8418.0
- .NET Framework: 4.0.30319.34003 によって構築: FX45W81RTMGDR
- ウェブ配置: 7.1.1762.0
- Web プラットフォーム インストーラー: 7.1.40719.0
- ASP.NET Web ページ: 2.0.20715.0
プロジェクト情報
以下のパッケージは、Empty Site → App_Data → packages の下に表示されます。
- Microsoft.AspNet.Razor.2.0.20715.0
- Microsoft.AspNet.WebPages.2.0.20710.0
- Microsoft.AspNet.WebPages.Data.2.0.20710.0
- Microsoft.AspNet.WebPages.WebData.2.0.20710.0
- Microsoft.Web.Infrastructure.1.0.0.0
- microsoft-web-helpers.2.1.20710.2 ← NuGet によって追加されました
次の DLL は、空のサイト → ビンの下に表示されます。
- Microsoft.Web.Helpers.dll ← NuGet によって追加されました
- Microsoft.Web.Infrastructure.dll
- System.Web.Helpers.dll
- System.Web.Razor.dll
- System.Web.WebPages.Deployment.dll
- System.Web.WebPages.dll
- System.Web.WebPages.Razor.dll
- WebMatrix.Data.dll
- WebMatrix.WebData.dll
概要
ASP.NET Web ヘルパー ライブラリの Video オブジェクトまたは LinkShare オブジェクトを使用しようとすると、CS0103 コンパイラ エラーが発生します。コンパイラが使用しようとしているオブジェクトの定義を見つけていないことは明らかですが、その理由はわかりません。また、WebMatrix の初心者として、その理由を突き止める方法もわかりません。Visual Studio では、このエラーはおそらくプロジェクトで参照が欠落していることを示していますが、WebMatrix のプロジェクトにはすべてが存在しているように見え、エラー ページに表示されるコマンド ラインには何も欠落していないようです。