我开始学习使用 Microsoft WebMatrix 3 进行 Web 开发。我正在使用这本书Introducing Microsoft WebMatrix,它针对的是早期版本,但很多东西都是一样的。但是,当我尝试使用 Microsoft ASP.NET Web Helpers Library 时出现编译错误,我不知道为什么或如何解决该问题。具体来说,我在尝试使用 Video 对象或 LinkShare 对象时收到编译器错误 CS0103。我已经在互联网上搜索了几天,但我找不到任何遇到相同问题并解决它的人。
重现错误的步骤
- 运行 WebMatrix 3。
- 在快速启动页面上,单击新建,然后单击模板库。
- 选择空站点,然后单击下一步。创建了一个名为“空站点”的新站点。
- 打开 Default.cshtml 页面进行编辑。
- 根据教程在 ASP.NET Web Pages (Razor) Site 中显示视频,将以下内容添加到页面正文中:
@Video.MediaPlayer(path: "myvideo.wmv", width: "400", height: "600", autoStart: true, playCount: 2, uiMode: "full", stretchToFit: true, enableContextMenu: true, mute: false, volume: 75)
- 运行网站。浏览器中会出现一个错误页面,其中包含以下语句:
“编译器错误消息:CS0103:当前上下文中不存在名称‘视频’”
很公平。我将使用 NuGet 来获取 Microsoft Web Helper Library。 - 返回 WebMatrix 窗口,单击 NuGet。
- 选择 WebMatrix 包源。
出现以下错误消息:“Microsoft.AspNet.WebPages”的架构版本与 NuGet 的 2.5.40416.9020 版本不兼容。请从 http://go.microsoft.com/fwlink/?LinkId=213942 将 NuGet 升级到最新版本。
单击确定忽略错误并继续。我尝试访问该网站并按照说明进行操作,但我已经拥有最新版本的 NuGet for WebMatrix。 - 在搜索框中键入
Web Helpers
并按 Enter。 - 选择“ASP.NET Web Helpers Library”并单击安装。确认安装并接受 EULA。出现有关“Microsoft.AspNet.WebPages”架构版本的相同错误。单击确定忽略错误。
- 单击关闭退出 NuGet 库,然后单击确定关闭所有剩余的错误窗口。
- 运行网站。出现与以前相同的错误消息。
这演示了 Video 对象的错误,当我尝试使用 LinkShare 对象时,我也收到了同样的错误。
环境信息
- 操作系统:Windows 8.1 Pro 和 Media Center 版本 6.3 (Build 9600)
- 浏览器:Internet Explorer 11.0.9600.16476;更新版本:11.0.2 (KB2898785)
- WebMatrix 3.0 版本信息:
- 网络矩阵:7.1.1932.0
- IIS 快递:8.0.8418.0
- .NET 框架:4.0.30319.34003 构建者:FX45W81RTMGDR
- 网络部署:7.1.1762.0
- Web 平台安装程序:7.1.40719.0
- ASP.NET 网页:2.0.20715.0
项目信息
以下包显示在空站点 → App_Data → 包下:
- 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 显示在 Empty Site → bin 下:
- 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 Helpers 库中的 Video 对象或 LinkShare 对象时遇到 CS0103 编译器错误。很明显,编译器没有为我尝试使用的对象定位定义,但我不知道为什么,作为一个 WebMatrix 初学者,我不知道如何找出原因。在 Visual Studio 中,此错误表明我可能缺少项目中的引用,但 WebMatrix 中的项目中似乎存在所有内容,并且错误页面上显示的命令行似乎没有任何内容丢失。