2016-03-07 5 views
1

Сегодня я установил бесплатную пробную ReSharper, чтобы очистить приложение в Visual Studio 2015.Задача «GenerateResource» не удалось неожиданно

Я всегда построил это приложение, с помощью alt + b + h который является таким же, как выбор Build -> Publish AppName, и это обычно довольно надежно, когда дело доходит до производства EXE, готового к использованию.

Однако, после того, как делают некоторые очистки вверх (в основном LINQ запросы, переименовывает и удаление не-более не используются методы/поля), я вижу эту ошибку при попытке публикации:

Error  The "GenerateResource" task failed unexpectedly. 
System.Runtime.InteropServices.ExternalException (0x80004005): A generic error occurred in GDI+. 
    at System.Drawing.Image.Save(Stream stream, ImageCodecInfo encoder, EncoderParameters encoderParams) 
    at System.Drawing.Image.Save(MemoryStream stream) 
    at System.Drawing.Image.System.Runtime.Serialization.ISerializable.GetObjectData(SerializationInfo si, StreamingContext context) 
    at System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitSerialize(Object obj, ISurrogateSelector surrogateSelector, StreamingContext context, SerObjectInfoInit serObjectInfoInit, IFormatterConverter converter, ObjectWriter objectWriter) 
    at System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.Serialize(Object obj, ISurrogateSelector surrogateSelector, StreamingContext context, SerObjectInfoInit serObjectInfoInit, IFormatterConverter converter, ObjectWriter objectWriter) 
    at System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Serialize(Object graph, Header[] inHeaders, __BinaryWriter serWriter, Boolean fCheck) 
    at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Stream serializationStream, Object graph, Header[] headers, Boolean fCheck) 
    at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Stream serializationStream, Object graph) 
    at System.Resources.ResourceWriter.WriteValue(ResourceTypeCode typeCode, Object value, BinaryWriter writer, IFormatter objFormatter) 
    at System.Resources.ResourceWriter.Generate() 
    at System.Resources.ResourceWriter.Dispose(Boolean disposing) 
    at System.Resources.ResourceWriter.Close() 
    at Microsoft.Build.Tasks.ProcessResourceFiles.WriteResources(IResourceWriter writer) 
    at Microsoft.Build.Tasks.ProcessResourceFiles.WriteResources(String filename) 
    at Microsoft.Build.Tasks.ProcessResourceFiles.ProcessFile(String inFile, String outFile) 
    at Microsoft.Build.Tasks.ProcessResourceFiles.Run(TaskLoggingHelper log, ITaskItem[] assemblyFilesList, ArrayList inputs, ArrayList outputs, Boolean sourcePath, String language, String namespacename, String resourcesNamespace, String filename, String classname, Boolean publicClass) 
    at Microsoft.Build.Tasks.ProcessResourceFiles.Run(TaskLoggingHelper log, ITaskItem[] assemblyFilesList, ArrayList inputs, ArrayList outputs, Boolean sourcePath, String language, String namespacename, String resourcesNamespace, String filename, String classname, Boolean publicClass) 
    at Microsoft.Build.Tasks.GenerateResource.Execute() 
    at Microsoft.Build.CommandLine.OutOfProcTaskAppDomainWrapperBase.InstantiateAndExecuteTask(IBuildEngine oopTaskHostNode, LoadedType taskType, String taskName, String taskLocation, String taskFile, Int32 taskLine, Int32 taskColumn, AppDomainSetup appDomainSetup, IDictionary`2 taskParams) ITHelpre    

И вывод не генерируется ,

Я перезапустил VS без эффекта, а также заметил, что я смог построить проект, открыв Developer Command Prompt for VS2015 и выполнив "msbuild C:/path/to/solution.sln".

Это было создать EXE в нужном месте, но всякий раз, когда я пытаюсь открыть его я получаю

Appname has stopped working - Windows is collecting more information about the problem. This might take several minutes...

Кто-нибудь есть какие-либо советы о том, как я могу добраться до нижней части этого?

Дополнительные детали

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

Удаление пар изображений, которые я нашел, который выглядел испорчен, проект построен, но по-прежнему падает на выполнении

+0

Вы внесли какие-либо изменения в ресурсы изображения вашего проекта? –

+0

@GlorinOakenfoot Нет изменений, которые я сделал, были в коде и связаны с именами переменных или порядком ifstatements/forloops. – Bassie

+0

Просто угадывание из ваших «дополнительных деталей», но я Предположим, что поврежденный образ является вашим виновником. Вы пытались удалить его и построить без него? Если это удастся, добавьте изображение из оригинала или более старое, если доступно. –

ответ

0

После запуска в режиме отладки, я заметил, что это бросает исключение в конструкторе ресурсов, когда PageControl был называться (даже хотя он уже объявлено).

Это, кажется, произошло после изменения этого:

Class PageControl1 
{ 
    // Code goes here 
} 

к этому:

namespace AppName 
{ 
    Class PageControl1 
    { 
     // Code goes here 
    } 
} 

Что я не совсем понимаю, - для меня это имеет смысл, что класс используется приложение должно жить в том же пространстве имен, что и все другие классы, используемые в этом приложении. Я был бы очень признателен за понимание этого.

После изменения PageControl1 обратно, как он выглядел первоначально, я удалил 2 испорченные изображения (которые, как представляется, стали коррумпированными сразу после изготовления выше namespace изменения, и заменить их некоторыми новыми образами, и это решить мою проблему.

Смежные вопросы