Это далеко, но я попытаюсь объяснить проблему как можно лучше. Я использую компилятор CodeDom в .Net 3.5 для компиляции 3 cs-файлов ... 2 из которых были сгенерированы из Edmgen.exe, а 1 - динамически сгенерированный файл. Компиляции кода выглядит следующим образом.Net 3.5 Компилятор CodeDom, генерирующий нечетные ошибки
CompilerResults results = compiler.CompileAssemblyFromFileBatch(parameters, new string[]{string.Format("{0}\\Dynamic.cs", Directory.GetCurrentDirectory()),
string.Format("{0}\\{1}.ObjectLayer.cs", Directory.GetCurrentDirectory(), ModelName), string.Format("{0}\\{1}.Views.cs", Directory.GetCurrentDirectory(), ModelName)});
Когда все три из этих файлов компилировать вместе, я получаю эту ошибку
Пустоты в классе, структура или декларации элемента интерфейса
I Недопустимого маркере предположил бы, что эта ошибка относится к этой строке кода, расположенной в ObjectLayer.cs
partial void OnIDChanged();
ОДНАКО, если эти 3 файла включены в новый проект VS2010 и скомпилированы через этот компилятор, они работают нормально .... эта ошибка происходит только с компилятором CodeDom ... у него есть проблема с "partial void ».
Я нашел проблему очень похожее на это здесь http://social.msdn.microsoft.com/forums/en-US/linqprojectgeneral/thread/85e085c8-b6ac-4cae-b59d-7b9ce7758122/
Однако это исправление не работает, потому что я использую CodeDOM компилятор не VS компилятор ....
Я хотел бы также отметить, что я попробовал компилятор командной строки .Net 3.5 (csc.exe), и это также отлично работало. И я также проверил этот точный код под .Net 4, который также работает. Этот вопрос, похоже, встречается только в .net 3.5
Кто-нибудь когда-либо сталкивался с этим или имел идею, почему компилятор .Net 3.5 CodeDom будет иметь проблему с частичными пустотами?
У меня была аналогичная проблема с компилятором CodeDom, который бросал ошибки, бросая строку в структуру, которая имела неявное преобразование. string to Nullable отбросил ошибки, но строка someStruct работала нормально. Сообщить о компиляторе dom для использования v3.5. –