我有两个不同版本的非托管 dll 和每个版本的清单。在我的 C# 代码中,我使用激活上下文来控制使用哪一个。然后我使用 P Invoke 进行实际调用。看来激活上下文的创建和激活是成功的。但是,上下文似乎被忽略了,无论哪个 dll 首先被调用,两者都使用。
P Invoke 可以与 SxS 一起使用吗?还是我设置不正确?
我在 C# 代码中对 C 函数的定义是:
[DllImport("MyMath.dll")]
private static extern double Add(double a, double b);
我的清单只有我添加的程序集标识,以及 Visual Studio 2010 生成的 trustInfo。
<?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>
谢谢您的帮助。
-缺口