У меня есть приложение (нативный код Delphi), которому нужен доступ к сборке .NET (предоставляет несколько COM-классов. Я хочу сделать это, используя параллельные сборки и манифесты. Я сделал это с помощью тестовой сборки .NET, но у меня проблема со сборкой, к которой мне нужно получить доступ.
Когда сборка зарегистрирована, я могу создать экземпляр класса COM. Как только я отменяю регистрацию сборки и пытаюсь получить доступ рядом, я получаювышеупомянутая ошибка. У моего собственного приложения есть манифест приложения, который имеет простую зависимость от сборки.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity type="win32"
name="TestApplication.exe"
version="1.0.0.0"/>
<dependency>
<dependentAssembly>
<assemblyIdentity
name="TestAssembly"
version="1.0.0.0"
processorArchitecture="x86"
publicKeyToken="xxxxxxxxxxxxxxxx"
type="win32"/>
</dependentAssembly>
</dependency>
</assembly>
Мой манифест сборки, который я встроил как ресурс в мою сборку .net, выглядит следующим образом:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
name="TestAssembly"
version="1.0.0.0"
processorArchitecture="x86"
publicKeyToken="xxxxxxxxxxxxxxxx"
type="win32"/>
<clrClass
clsid="{F3F1623D-DB4A-4152-9A5D-5A465AD3A318}"
progid="TestAssembly.MyObject"
threadingModel="Both"
name="TestAssembly.MyObject"
runtimeVersion="v2.0.50727">
</clrClass>
<file name="TestAssembly.dll">
</file>
</assembly>
Кажется, что манифесты настроены правильно. Если я изменю имя зависимости манифеста приложения, версию или токен открытого ключа (в данном примере это не тот код, который есть в моем коде), яполучить обычную ошибку SxS о конфигурации приложения неверно.
у меня это работает на другом (админемного проще) .NET сборки, но не могу понять, что не так.Проблема в том, что я не уверен, что означает ошибка.