我知道错误信息是常见的,关于这个错误有很多问题,但到目前为止还没有解决方案帮助我,所以我决定提出这个问题.与大多数类似问题的区别在于我使用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'.
Run Code Online (Sandbox Code Playgroud)
源文件:
c:\inetpub\wwwroot\Test\Website\App_Code\Company\Project\BusinessLogic\Manager.cs
Run Code Online (Sandbox Code Playgroud)
以下的建议在这里和这里,我已经删除了Project.Rights.dll的所有实例中C:\ WINDOWS\Microsoft.NET /*.*根据这个,我检查,如果有问题的.cs文件具有生成操作设置为"编译" .他们是这样.我还仔细检查了包含"Project.Rights.OperationsProvider"类型的.cs文件是否已部署到App_Code目录.
出于某种原因,应用程序不在App_Code目录中查找类型.由于我删除了Project.Rights.dll的所有实例(我知道),我不知道错误消息提到哪个程序集.
类型"x"在未引用的程序集中定义.您必须添加对程序集"abc123"的引用.
我有一个.NET 2.0 Web应用程序,引用我的程序集'abc123'.该程序集存在于GAC中,我已经验证它是正确的(相同)版本.除了一个.aspx页面之外,其余的应用程序都没有问题.有问题的页面有一个转发器,它将用户控件显示为其"字段"之一.在将类型y的列表绑定到转发器时,我向用户控件传递类型x的列表(y的属性),如下所示:
<uc1:usercontrol id="ucusercontrol " runat="server" myPublicUserControlProperty='<%#Eval("CollectionOfX") %>'/>
Run Code Online (Sandbox Code Playgroud)
在用户控件的属性集上,我将类型x的列表绑定到用户控件中的gridview.
需要注意的一件奇怪的事情是,这个报告在我的开发PC上工作正常,但在我部署之后在任何服务器上都没有.我的电脑是Windows XP,IIS6,VS2005.服务器是Windows Server 2003,IIS6.
我希望我解释得那么好.提前感谢您提供的任何见解.