【发布时间】:2016-03-16 21:02:15
【问题描述】:
我意识到这个问题已经提出,但我的原因与我在类似问题上看到的不同,所以这是我的设置。
我有 2 个 c# 项目 A 和 B,项目 B 引用第三方库 Indirect。 A 将调用B 中定义的静态方法,并且在构建时出现以下错误。
错误 2 类型“Indirect.Class”在未引用的程序集中定义。您必须添加对程序集“Indirect, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null”的引用。
代码如下:
//Project A
class A
{
static void Main(string[] args)
{
B.TestMethod("fileName", "param2");
}
}
//Project B
public class B
{
public static string TestMethod(string fileName, string param2)
{
return "";
}
public static bool TestMethod(Indirect.Class doc, string anotherParam)
{
return false;
}
}
所以即使在A 中我调用了不依赖于Indirect 程序集的B 方法,我仍然看到错误。有人可以向我解释为什么编译器在编译时无法确定这一点吗?我可以简单地重命名第二个B.TestMethod,错误就会消失,或者我可以添加第三个参数,但所有这些似乎都没有必要。
【问题讨论】:
-
您仍然需要添加程序集。编译器可以在编译时访问它需要的内容,但如果在运行时未引用间接程序集,则程序集 B 无法加载,因此程序集 A 也无法加载。
标签: c# .net compiler-errors .net-assembly