Подтвердить что ты не робот

VS2008 Ошибка компилятора С#: ".ctor" не поддерживается языком"

Я получил эту ошибку от компилятора С# в VS2008. Гуглинг не принес ничего полезного. Я никогда не видел эту ошибку раньше. Может ли кто-нибудь пролить свет на него?

Строка кода, о которой идет речь, представляет собой экземпляр класса I:

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

Да, конструктор существует. Если бы это не так, это была бы совершенно другая ошибка. Других ошибок компиляции нет. Это единственный момент в проекте, в котором этот экземпляр создается. В этот момент мне больше любопытно.

<я > (редактировать) По запросу определения конструктора классов:

Это тот, который я вызываю:

public Frame(int startTime, int length, byte commandId)

Другой принимает объект как параметр. Этот объект содержит данные, предоставленные другим конструктором:

public Frame(Command command)

Указанный класс Command определяется в отдельной сборке, на которую ссылаются и компилируется без ошибок.

4b9b3361

Ответ 1

Я думаю, что нашел ответ. Или, по крайней мере, причина этой конкретной ошибки.

Я начал изучать файлы и проверять какие-либо устаревшие или другие несоответствия. Одна из собраний датировалась в прошлом. VS построил бы его без ошибок, но дата изменения целевого файла не изменилась. Только после того, как я удалил эту сборку вручную и восстановил ее, появился обновленный двоичный файл.

После этого я прекратил получать сообщение об ошибке компилятора.

Ответ 2

Является Frame, определенным в сборке С++/CLI? Если это так, конструктор может содержать параметры, не поддерживаемые компилятором С#.

Ответ 3

Reslove error build ** "Не поддерживается языком" ** в Visual Studio

Удалить старый файл .DLL и перестроить проект
+ Удалить старый .dll файл в текущем проекте
+ Добавить новый файл .dll в проект

Зачем?
Поскольку при обновлении новой ссылки вы можете быть конфликтом (дублировать dll) в проекте
  1. DLL, старая в текущем проекте и
  2.DLL просто добавляет новую ссылку.