Автоматически сгенерированные файлы (файлы Silverlight * .g.i.cs) не игнорируются, если включена обработка предупреждений как ошибок - PullRequest
2 голосов
/ 11 октября 2010

Я стараюсь быть хорошим разработчиком и включаю обработку предупреждений как ошибок (как я всегда делал в прошлом). Самая большая разница в том, что на этот раз я использую Silverlight 4, который генерирует тонну кода. Весь код начинается примерно так:

#pragma checksum <some stuff>
//------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by a tool.
//     Runtime Version:4.0.30319.1
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
//---------

Однако, обрабатывайте предупреждения как ошибки, а не игнорируйте их. У меня сложилось впечатление, что включение такого заголовка приведет к игнорированию файла. Видимо, я не прав. У кого-нибудь есть (чистое) предложение?

Ответы [ 3 ]

3 голосов
/ 20 мая 2011

У меня возникла та же проблема, когда я удалил все папки BIN и OBJ из каталога решений (чтобы сделать файл резервной копии меньшего размера из исходных файлов).

Я изменил Целевую версию Silverlight в Свойства проекта с SL4 на SL3, а затем переключился на SL4. У меня это сработало.

3 голосов
/ 07 января 2012

Мне потребовалось много времени, чтобы найти приемлемый обходной путь, но это гораздо лучше, чем изменить версию Target Silverlight.

Обходной путь, как упоминалось в MSDN , удаляет всеВаши файлы * .gics до сборки.

Вот скрипт F # для этого (как описано в разделе обходных путей MSDN):

open System
open System.IO

let deleteUserFile file =
    printfn "%s" file
    File.Delete(file)

Directory.GetFiles( @".", "*g.i.cs", SearchOption.AllDirectories )
|> Array.iter deleteUserFile

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

Редактировать: Я обновился до Silverlight 5 и у меня возникла эта проблемапроизойти снова.Ни одно из перечисленных здесь предложений не сработало (переключение на SL4, затем обратно на SL5 или только удаление файлов gics) - однако удаление папок BIN и OBJ проекта Silverlight сработало.

1 голос
/ 12 октября 2010

Хорошо, получается, что, по крайней мере, в моем случае единственные предупреждения, исходящие от сгенерированных файлов, были результатом моего создания пользовательской базовой страницы Silverlight, от которой унаследованы мои страницы.Вы можете решить проблему с предупреждениями компилятора, возникающими в результате сценариев этого типа, удалив файл XAML из проекта и повторно добавив файл кода xaml.cs обратно в проект.Это приводит к тому, что LayoutRoot не определяется, а генератор кода не генерирует метод InitializeComponent для этого базового класса.Надеюсь, это поможет и кому-то еще!

...