VS2008 C#编译器错误:“语言不支持'.ctor'”

19

我在VS2008的C#编译器中收到了这个错误。在谷歌搜索中没有找到有用的结果。我以前从未见过这个错误。有人能解释一下吗?

出错的代码行是我定义的一个类的实例化:

Frame frame = new Frame( // various arguments...

是的,构造函数是存在的。如果它不存在,那将会是一个完全不同的错误。没有其他编译错误。这是项目中唯一实例化此类的地方。我现在更加好奇。

(编辑) 按照请求,以下是类构造函数定义:

这是我正在调用的构造函数:

public Frame(int startTime, int length, byte commandId)
另一个构造函数需要以对象作为参数。该对象包含由另一个构造函数提供的数据。
public Frame(Command command)

引用的Command类在另一个程序集中定义,该程序集已被引用且编译无误。


你需要发布你的类构造函数定义(所有的) - Mitch Wheat
6
为什么这被标记为“不适合主题”? - Matthew
3个回答

18

我认为我找到了答案,或者至少是这个特定错误的原因。

我开始查看相关文件并检查是否存在任何过时或其他不一致之处。其中一个程序集的日期是过去的。VS可以无错误地构建它,但目标文件的修改日期不会改变。直到我手动删除该程序集并重新构建它后,才出现了最新的二进制文件。

此后,我就不再收到编译器错误信息了。


我也发现这个错误是由于过时的元数据引起的。 - fusi

1

Frame 在 C++/CLI 程序集中定义了吗?如果是的话,构造函数可能包含 C# 编译器不支持的参数。


多年没碰过C++了。这是我在另一个引用程序集中定义的一个类。 - redman

0

在Visual Studio中解决构建错误“不受语言支持”

清除旧的.DLL文件并重新构建项目
+ 删除当前项目中的旧.DLL文件
+ 将新的.DLL文件重新添加到项目中

为什么?
因为当更新新的引用时,您可能会在项目中发生冲突(重复的DLL)
1. 当前项目中的旧DLL和
2. 刚刚添加的新引用的DLL。


你的回答措辞需要改进。 - Lizz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接