【发布时间】:2014-01-06 19:11:43
【问题描述】:
我知道错误消息很常见,关于这个错误有很多关于 SO 的问题,但到目前为止没有解决方案对我有帮助,所以我决定提出这个问题。与大多数类似问题的不同之处在于我使用 App_Code 目录。
错误信息:
CS0012: The type 'Project.Rights.OperationsProvider' is defined in an
assembly that is not referenced. You must add a reference to assembly
'Project.Rights, version=1.0.0.0, Culture=neutral, PublicKeyToken=null'.
源文件:
c:\inetpub\wwwroot\Test\Website\App_Code\Company\Project\BusinessLogic\Manager.cs
根据here 和here 的建议,我已删除 C:\Windows\Microsoft.NET/*.* 中的所有 Project.Rights.dll 实例 根据this,我检查了有问题的 .cs 文件是否将构建操作设置为“编译”。他们是这样。 我还仔细检查了包含“Project.Rights.OperationsProvider”类型的 .cs 文件是否已部署到 App_Code 目录。
由于某种原因,应用程序没有在 App_Code 目录中寻找类型。由于我已经删除了 Project.Rights.dll 的所有实例(我知道),我不知道错误消息提到的是哪个程序集。
【问题讨论】:
-
你正在使用一个类(比如说 A),它公开了 Project.Rights.OperationsProvider 类型的方法/属性/东西。编译器需要知道那是什么,然后它将搜索该程序集(Project.Rights)。如果没有找到它(因为您的网站项目中没有对它的引用)...您会收到此错误。 解决方案: 不要从系统中删除该程序集!!!添加对它的引用。
-
尝试转到工具 - 选项 - 项目和解决方案 - 构建和运行 - 将两个详细信息设置为详细。这会告诉你依赖是什么,以及编译器在哪里寻找它。
标签: c# asp.net .net asp.net-4.0