Как In может проверить, что мой файл.Manifest действителен?
Я конвертирую приложение VB6 для использования Manifest для развертывания Reg Free.
Я создал манифест с Make My Manifest, но когда я запускаю приложение, я получаю сообщение об ошибке (ниже).
Я хочу убедиться, что мой манифест не является каким-то недействительным. (Я открыл его, и он выглядит хорошо, за исключением некоторых непечатных символов, что кажется странным для файла формата XML.
** --------------------------- C: \ Bungalow \ tutor \ tutor.exe
Это приложение не удалось запустить из-за неправильной конфигурации приложения. Переустановка приложения может решить проблему.
ХОРОШО**
Выдержка из Манифеста с непечатными персонажами
<file name="THREED32.OCX">
<typelib tlbid="{0BA686C6-F7D3-101A-993E-0000C0EF6F5E}" version="1.0" flags="control" helpdir="" />
<comClass clsid="{0BA686AA-F7D3-101A-993E-0000C0EF6F5E}" tlbid="{0BA686C6-F7D3-101A-993E-0000C0EF6F5E}" progid="Threed.SSCheck" description="A three-dimensional check box. ***\ 1 ª8! DOCUME~1 D ï¾1×°¬:÷ D o c u m e n t s a n d S e t t i n g s *** " />
Я удалил все непечатные символы
5 ответов
Если вы работаете в Vista/Server08, перед запуском вашего приложения используйте инструмент командной строки sxstrace.exe из привилегированной строки. это может дать вам дополнительную информацию.
Кроме того, посмотрите журнал событий Windows, там сообщается об ошибках анализа.
Я бы также предложил добавить тег "regfreecom" к этому вопросу.
Я не знаю, может ли это быть вашей проблемой, но если вы включаете манифест в файл res, я считаю, что он должен иметь размер, точно делимый на 4 байта (не спрашивайте меня, почему)
Возможно, вы захотите проверить, не ссылаетесь ли вы в библиотеках, скомпилированных с разными версиями Visual Studio .. (при условии, что это то, что вы используете)
У меня была проблема, очень похожая на это... то же сообщение об ошибке... после того, как я переместил приложение из VS2005 в VS2008. Ошибка состояла в том, что это было связано с библиотекой, построенной в отдельном решении, которое я не перенес на VS2008. Релиз версия работала нормально, но отладочная версия попала в эту ошибку.
Вот выдержка из раздела " Устранение неполадок " в статье MSDN о рег-COM. Как и в ответе Евгения, он предлагает посмотреть журнал событий в Windows Server (может быть, с Virtual PC?).
Сначала получите... ваш клиент работает с зарегистрированным сервером; затем отмените регистрацию сервера и убедитесь, что ваше сообщение об ошибке соответствует ожидаемому; и наконец... создайте и разверните файлы манифеста. Таким образом, ваши усилия по устранению неполадок... будут ограничены структурой ваших файлов манифеста (и правильным внедрением манифеста сборки, если вы решите это сделать).
При устранении неполадок, связанных с проблемами COM без регистрации, программа просмотра событий в Windows Server 2003 - ваш друг... посмотрите в журнале системных событий события с COM-сервера. Я не советую вам просматривать журнал событий Windows XP... он всегда будет содержать сообщение... которое не помогает выявить проблему.
Начиная с версии 0.6.7, Make My Manifest лучше обрабатывает экранирование "нечетных" символов и символов. Эта версия имеет только несколько изменений по сравнению с 0.6.6, поэтому обновление не должно вызывать проблем у большинства людей.
Новая версия должна лучше обрабатывать большие номера версий COM-интерфейса. Это должно помочь программистам, которые испытывают проблемы с управлением двоичной совместимостью интерфейса (или игнорируют совместимость).