0

アンマネージ 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>

ご協力ありがとうございました。

-ニック

4

0 に答える 0