我在项目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注册的程序集。
*编辑:固定标题
答案 0 :(得分:4)
一段时间后,我的同事找到了我们的解决方案。我试图添加命名空间,我们需要的是添加程序集。这是在根web.config中完成的,而不是视图web.config。我们必须添加的是:
<compilation debug="false" targetFramework="4.0">
<assemblies>
<add assembly="namespace.AppAuthentication />
</assemblies>
</compilation>
现在我可以使用自定义的WebViewPage扩展了!
答案 1 :(得分:0)
在运行应用程序时,.Net运行时将加载在GAC中注册的程序集。
您需要添加对项目的引用才能成功构建,但您无需在构建和部署过程中对其进行打包。