0

我正在尝试让 Nhaml 为 ASP.NET MVC 2 项目工作。该项目的后端是Mongo DB,使用NoRM 驱动程序。NoRM 指定了一些自定义类型,特别是 ObjectID 作为对 Mongo 的唯一 _id 列的引用。

我有 Nhaml 视图从强类型模型编译和输出数据,但它在 ObjectID 类型上被这样写:

%td= Html.ActionLink("Update", "Update", new { id=Model._id })

具体来说,错误信息是:

c:\Windows\Temp\a7lwemtp.0.cs(83,9):错误 CS0012:类型“Norm.ObjectId”在未引用的程序集中定义。您必须添加对程序集“Norm,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null”的引用。

...这似乎相当简单,但在将 Norm 程序集引用添加到我的 web.config 文件的 Nhaml 配置部分后,我仍然收到相同的错误消息:

<nhaml autoRecompile="true" templateCompiler="CSharp3" encodeHtml="false" useTabs="false" indentSize="2">
  <assemblies>
    <add assembly="Norm" Version="1.0.0.0" Culture="neutral" PublicKeyToken="null"/>
    <add assembly="MyApp"/>
  </assemblies>
  <namespaces>
    <add namespace="MyApp"/>
    <add namespace="MyApp.Controllers"/>
    <add namespace="MyApp.Models"/>
    <add namespace="Norm"/>
    <add namespace="Norm.BSON.DbTypes"/>
  </namespaces>
</nhaml>

我宁愿希望它能解决问题。我是否遗漏了一些明显的东西,或者完全误解了 Nhaml 正在寻找的程序集参考?

4

1 回答 1

0

以防万一您遗漏了一些明显的东西或完全误解了程序集参考...

CS0012 是 C# 编译器,要求引用包含 Norm.ObjectId 的 dll 或项目。将元素添加到配置文件不会修复它,如果您已将源代码添加到解决方案,则需要确保您的 MVC 2 项目具有对构建的 NoRM dll 或 NoRM 项目的引用。

http://msdn.microsoft.com/en-us/library/x0dz51e1%28VS.90%29.aspx

于 2010-08-24T22:26:50.967 回答