Попытка pinvoke и SXS. Контекст игнорируется и используется первая DLL

У меня есть две разные версии неуправляемой DLL и манифест для каждой. В моем коде C# я использую контексты активации, чтобы контролировать, какой из них используется. Затем я использую P Invoke, чтобы сделать реальный вызов. Похоже, что создание и активация контекста активации прошла успешно. Тем не менее, контекст, кажется, игнорируется, и тот, который вызывается сначала dll, используется обоими.

Можно ли использовать P Invoke с SxS? Или я настроил это неправильно?

Мое определение для функции C в коде C#:

[DllImport("MyMath.dll")]
private static extern double Add(double a, double b);

В моем манифесте есть только идентификатор сборки, который я добавил, и trustInfo, сгенерированный Visual Studio 2010.

<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
<assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'>
    <assemblyIdentity name="MyMath.dll"
                   version="1.1.0.0"
                   type="win32"
                   processorArchitecture="x86"/>
    <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
      <security>
        <requestedPrivileges>
          <requestedExecutionLevel level='asInvoker' uiAccess='false' />
        </requestedPrivileges>
      </security>
    </trustInfo>
</assembly>

Спасибо за помощь.

-Ник

0 ответов

Другие вопросы по тегам