剃刀观看不看外部装配

时间:2014-02-03 19:06:07

标签: c# asp.net-mvc razor

我在项目1中设置了一个扩展WebViewPage的类,以便我可以添加自己的扩展方法。我按照这个页面:right here.

我有第二个项目,它包含一个类和一个对象。该项目的.dll在项目1中引用并在gacutil中注册。

扩展方法使用项目2中的对象。每当我在页面上使用我新实现的扩展方法时,我都会收到奇妙的CCS0012错误。

  

CS0012:定义了“namespace.AppAuthentication.type”类型   在未引用的程序集中。您必须添加引用   程序集'namespace.AppAuthentication'

我已经能够通过调试看到该对象已正确设置。即使我将其解析为JSON并在jquery中将其显示到控制台......一切都在那里!只有在我访问视图中的对象时才会这样。

项目2在项目1中被引用。项目2的.dll在我的gacutil中注册。这种方法的唯一方法是在引用上将“copy local”设置为true。除此之外,这对我来说不是一个可接受的选择。我一直在尝试阳光下的一切,以及这篇文章中列出的所有内容:right here.

如果有人能对这件事情有所了解,我将非常感激。对我来说,似乎Razor无法访问在GAC注册的程序集。

*编辑:固定标题

2 个答案:

答案 0 :(得分:4)

一段时间后,我的同事找到了我们的解决方案。我试图添加命名空间,我们需要的是添加程序集。这是在根web.config中完成的,而不是视图web.config。我们必须添加的是:

<compilation debug="false" targetFramework="4.0">
 <assemblies>
  <add assembly="namespace.AppAuthentication />
 </assemblies>
</compilation>

现在我可以使用自定义的WebViewPage扩展了!

答案 1 :(得分:0)

在运行应用程序时,.Net运行时将加载在GAC中注册的程序集。

您需要添加对项目的引用才能成功构建,但您无需在构建和部署过程中对其进行打包。