Регистрация Free COM Interop: приложение не удалось запустить, поскольку его параллельная конфигурация неверна - PullRequest
4 голосов
/ 08 июля 2010

Фон.У меня есть сборка COM Wrapper под названием ComWrapper.dll, написанная на C #, и приложение Visual Basic 6 под названием Project1.exe.Я добавил файл Project1.exe.manifest (содержимое которого показано ниже) и получаю сообщение об ошибке «Приложение не удалось запустить, поскольку его параллельная конфигурация неверна..

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  <assemblyIdentity type="win32"
                    name="Project1.exe"
                    version="1.0.0.0"
                    processorArchitecture="x86" />
  <dependency>
    <dependentAssembly>
      <assemblyIdentity name="ComWrapper" version="1.0.0.0" processorArchitecture="msil"></assemblyIdentity>
      <clrClass clsid="{3ac3d04e-1f83-4a27-b516-95e38126685d}" progid="MyComObjectNamespace.myclass" threadingModel="Both" name="MyComObjectNamespace.myclass" runtimeVersion=""></clrClass>
      <file name="ComWrapper.dll" hashalg="SHA1"></file>
      <dependency>
        <dependentAssembly>
          <assemblyIdentity name="mscorlib" version="2.0.0.0" publicKeyToken="b77a5c561934e089"></assemblyIdentity>
        </dependentAssembly>
      </dependency>
    </dependentAssembly>
  </dependency>
</assembly>

Любая помощь будет высоко ценится.

1 Ответ

6 голосов
/ 08 июля 2010

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

ИНФОРМАЦИЯ: Файл манифеста парсинга

C:. \ Temp \ SxS \ Project1.exe.Manifest

ИНФОРМАЦИЯ: Идентификацией определения манифеста является Project1.exe, processorArchitecture = "x86", type = "win32", version = "1.0.0.0".

ИНФОРМАЦИЯ: Ссылка: ComWrapper, processorArchitecture = "msil", версия = "1.0.0.0"

ОШИБКА: Строка 9: элемент clrClass отображается как дочерний элемент элемента urn: schemas-microsoft-com: asm.v1 ^ variableAssembly, который не поддерживается этой версией Windows.

Проблема в том, что элемент dependentAssembly не должен предоставлять полное описание сборки - он используется только для указания ссылки. Вы должны предоставить отдельный файл манифеста компонента для этой сборки, который затем описывает экспортированные COM-классы через clrClass. Более подробно это описано в этой статье MSDN .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...