アンマネージ dll の 2 つの異なるバージョンと、それぞれのマニフェストがあります。私の C# コードでは、アクティベーション コンテキストを使用して、使用するコンテキストを制御しています。次に、P Invoke を使用して実際の呼び出しを行います。アクティベーション コンテキストの作成とアクティベーションが成功したようです。ただし、コンテキストは無視されているようで、最初に呼び出された dll が両方で使用されます。
P Invoke は SxS で使用できますか? それとも、これを間違って設定しましたか?
C# コードの C 関数の私の定義は次のとおりです。
[DllImport("MyMath.dll")]
private static extern double Add(double a, double b);
私のマニフェストには、追加したアセンブリ ID と、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>
ご協力ありがとうございました。
-ニック