Регистрация Free Com и манифесты dll

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

App.exe -----> COM Server / Client dll (зарегистрированный или нет) --------> COM Server DLL ( НЕ зарегистрирован)

Мои вопросы: можно ли создать манифест для второй dll (COM Server / Client dll)? У меня нет контроля над исполняемым файлом, но если я это сделал, это работает, если я создам клиента манифест для исполняемого файла и манифест сервера для библиотеки DLL COM-сервера.

это файл манифеста для средней библиотеки DLL. Я пробовал встраивать его и пробовал внешний. По-прежнему не работает.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  <assemblyIdentity type="win32" 
                    name="COMCliSer.dll" 
                    version="1.0.0.0" 
  />
  <dependency>
    <dependentAssembly>
      <assemblyIdentity 
                     name="COMSer.dll" 
                    version="1.0.0.0"                    
      />
    </dependentAssembly>
  </dependency>
</assembly>

При дальнейшем расследовании я могу заставить все это работать, если средняя dll также бесплатна для регистрации и у exe есть манифест приложения. Как только я регистрирую среднюю dll и отбрасываю манифест приложения (я не контролирую, какой exe будет использовать мою dll), все перестает работать.

Если у exe нет манифеста, то манифест dll будет не принимается во внимание. Я могу доказать это, настроив все на работу. Затем внесение ошибки в манифест сборки. Появляется обычное сообщение:

Невозможно создать процесс: это приложение не удалось запустить из-за неправильной конфигурации приложения. Повторная установка приложения может решить эту проблему.

Если я затем отброшу манифест приложения, приложение загружается (хотя CoCreateInstance не работает, потому что зависимости не принимаются во внимание)

10
задан Steve 26 October 2010 в 13:46
поделиться