1

我开始学习使用 Microsoft WebMatrix 3 进行 Web 开发。我正在使用这本书Introducing Microsoft WebMatrix,它针对的是早期版本,但很多东西都是一样的。但是,当我尝试使用 Microsoft ASP.NET Web Helpers Library 时出现编译错误,我不知道为什么或如何解决该问题。具体来说,我在尝试使用 Video 对象或 LinkShare 对象时收到编译器错误 CS0103。我已经在互联网上搜索了几天,但我找不到任何遇到相同问题并解决它的人。

重现错误的步骤

  1. 运行 WebMatrix 3。
  2. 在快速启动页面上,单击新建,然后单击模板库。
  3. 选择空站点,然后单击下一步。创建了一个名为“空站点”的新站点。
  4. 打开 Default.cshtml 页面进行编辑。
  5. 根据教程在 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)
  6. 运行网站。浏览器中会出现一个错误页面,其中包含以下语句:
    “编译器错误消息:CS0103:当前上下文中不存在名称‘视频’”
    很公平。我将使用 NuGet 来获取 Microsoft Web Helper Library。
  7. 返回 WebMatrix 窗口,单击 NuGet。
  8. 选择 WebMatrix 包源。
    出现以下错误消息:
    “Microsoft.AspNet.WebPages”的架构版本与 NuGet 的 2.5.40416.9020 版本不兼容。请从 http://go.microsoft.com/fwlink/?LinkId=213942 将 NuGet 升级到最新版本。
    单击确定忽略错误并继续。我尝试访问该网站并按照说明进行操作,但我已经拥有最新版本的 NuGet for WebMatrix。
  9. 在搜索框中键入Web Helpers并按 Enter。
  10. 选择“ASP.NET Web Helpers Library”并单击安装。确认安装并接受 EULA。出现有关“Microsoft.AspNet.WebPages”架构版本的相同错误。单击确定忽略错误。
  11. 单击关闭退出 NuGet 库,然后单击确定关闭所有剩余的错误窗口。
  12. 运行网站。出现与以前相同的错误消息。

这演示了 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 中的项目中似乎存在所有内容,并且错误页面上显示的命令行似乎没有任何内容丢失。

4

0 回答 0