VS2008 Ошибка компилятора С#: ".ctor" не поддерживается языком"
Я получил эту ошибку от компилятора С# в VS2008. Гуглинг не принес ничего полезного. Я никогда не видел эту ошибку раньше. Может ли кто-нибудь пролить свет на него?
Строка кода, о которой идет речь, представляет собой экземпляр класса I:
Frame frame = new Frame( // various arguments...
Да, конструктор существует. Если бы это не так, это была бы совершенно другая ошибка. Других ошибок компиляции нет. Это единственный момент в проекте, в котором этот экземпляр создается. В этот момент мне больше любопытно.
<я > (редактировать)
По запросу определения конструктора классов:
Это тот, который я вызываю:
public Frame(int startTime, int length, byte commandId)
Другой принимает объект как параметр. Этот объект содержит данные, предоставленные другим конструктором:
public Frame(Command command)
Указанный класс Command
определяется в отдельной сборке, на которую ссылаются и компилируется без ошибок.
Ответы
Ответ 1
Я думаю, что нашел ответ. Или, по крайней мере, причина этой конкретной ошибки.
Я начал изучать файлы и проверять какие-либо устаревшие или другие несоответствия. Одна из собраний датировалась в прошлом. VS построил бы его без ошибок, но дата изменения целевого файла не изменилась. Только после того, как я удалил эту сборку вручную и восстановил ее, появился обновленный двоичный файл.
После этого я прекратил получать сообщение об ошибке компилятора.
Ответ 2
Является Frame
, определенным в сборке С++/CLI? Если это так, конструктор может содержать параметры, не поддерживаемые компилятором С#.
Ответ 3
Reslove error build ** "Не поддерживается языком" ** в Visual Studio
Удалить старый файл .DLL и перестроить проект
+ Удалить старый .dll файл в текущем проекте
+ Добавить новый файл .dll в проект
Зачем?
Поскольку при обновлении новой ссылки вы можете быть конфликтом (дублировать dll) в проекте
1. DLL, старая в текущем проекте и
2.DLL просто добавляет новую ссылку.