为了账号安全,请及时绑定邮箱和手机立即绑定

类型是在未引用的程序集中定义的,如何查找原因?

类型是在未引用的程序集中定义的,如何查找原因?

月关宝盒 2019-08-28 10:55:11
类型是在未引用的程序集中定义的,如何查找原因?我知道错误信息是常见的,关于这个错误有很多问题,但到目前为止还没有解决方案帮助我,所以我决定提出这个问题。与大多数类似问题的区别在于我使用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以下的建议在这里和这里,我已经删除了Project.Rights.dll的所有实例中C:\ WINDOWS \ Microsoft.NET /*.*根据这个,我检查,如果有问题的.cs文件具有生成操作设置为“编译” 。他们是这样。我还仔细检查了包含“Project.Rights.OperationsProvider”类型的.cs文件是否已部署到App_Code目录。出于某种原因,应用程序不在App_Code目录中查找类型。由于我删除了Project.Rights.dll的所有实例(我知道),我不知道错误消息提到哪个程序集。
查看完整描述

3 回答

?
白衣染霜花

TA贡献1796条经验 获得超10个赞

当你得到这个错误时,并不总是很明显发生了什么,但正如错误所说 - 你错过了一个引用。以下面的代码行为例:

MyObjectType a = new MyObjectType("parameter");

它看起来很简单,你可能正确地引用了“MyObjectType”。但是,让我们说“MyObjectType”构造函数的重载之一采用您没有引用的类型。例如,有一个重载定义为:

public MyObjectType(TypeFromOtherAssembly parameter) {
    // ... normal constructor code ...}

这至少是一种你会得到这个错误的情况。因此,寻找这种类型的模式,其中您引用了类型,但没有引用该类型上调用的函数可能的所有属性类型或方法参数。

希望这至少可以让你朝着正确的方向前进!


查看完整回答
反对 回复 2019-08-28
?
翻过高山走不出你

TA贡献1875条经验 获得超3个赞

在我的情况下,这是因为执行NuGet包更新只更新了对我的解决方案中某些不是所有项目中的dll依赖项的引用- 导致版本冲突。使用grep风格的工具在我的解决方案中的* .csproj文件中搜索文本,然后很容易看到仍需要更新的项目。


查看完整回答
反对 回复 2019-08-28
  • 3 回答
  • 0 关注
  • 2178 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信