Ошибка 23 не является допустимым приложением Win32 для файла.resx
У меня есть форма в моем проекте VB>NET (2010) с некоторым ImageList. Эти изображения встраиваются в список с помощью ресурса формы в файле.resx как
data name="xxxx.ImageStream" mimetype="application/x-microsoft.net.object.binary.base64 Когда я попытался построить / запустить свой проект, я получил:
Ошибка 23 не является допустимым приложением Win32. (Исключение из HRESULT: 0x800700C1) Строка XXXX, позиция X...
в строке, где закрывается тег данных.
Когда я изменяю код base64 изображения внутри файла.resx (изменяя значение "0" на "y"), проект компилируется, но когда я пытаюсь запустить приложение, изображения перезагружаются и мои изменения исчезают
Знаете ли вы, как решить эту ошибку и собрать и запустить мой проект? Спасибо
2 ответа
Если в первой строке vbj00L ближе к концу, замените его на vbj0yL - это решит вашу проблему. Это нужно делать каждый раз, когда вы изменяете форму из конструктора.
Новости из результатов тикета поддержки MS.
1. Это известная проблема в средах dotnet через 4.0. Это исправлено в 4.5. http://blogs.msdn.com/b/visualstudio/archive/2010/06/18/resgen-exe-error-an-attempt-was-made-to-load-a-program-with-an-incorrect-format.aspx?PageIndex=5&CommentPosted=true
2. Таким образом, чтобы использовать "старые" 32-битные значения vbj00L с предыдущей Dotnet Target Framework, просто установите 4.5 SDK. 2a. Мне не требовалась отдельная установка; Я только что установил Visual Studio VS2012, который установил 4.5 для меня. 2b.После того, как 4.5 появится на компьютере, Resgen.exe, общий компонент, станет доступен для других студий и сред, например VS2010/net3.5. Компиляция удастся.
3. Что касается причины возникновения ошибки, я предполагаю, что она связана с проблемой целочисленных представлений.