0

我有一个部署到 IIS 的 x86 和 x64 实例的 WCF 服务。服务本身是为 AnyCPU 编译的。该服务使用 C++ 程序集,它有两种不同的位数。两种位的名称相同(foo.dll)

有没有办法部署这两种比特位并让 IIS/WCF 即时找出需要什么?现在,弄清楚要部署什么有点像噩梦。

有没有更好的办法?

4

1 回答 1

0

这个怎么样?

public void LoadAssembly()
{
     AppDomain.CurrentDomain.AssemblyResolve += CurrentDomain_AssemblyResolve;
     var a = Assembly.Load("foo");
     Type myType = a.GetType("Example");

    // Get the method to call.
    MethodInfo myMethod = myType.GetMethod("MethodA");

    // Create an instance. 
    object obj = Activator.CreateInstance(myType);

    // Execute the method.
    myMethod.Invoke(obj, null);
}

private System.Reflection.Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args)
{
     if (IntPtr.Size == 4)
     {
          // return your 32-bit.
     }
     else if (IntPtr.Size == 8)
     {
          // return your 64-bit.
     }
}

有用的链接:

http://msdn.microsoft.com/en-us/library/system.appdomain.assemblyresolve.aspx http://msdn.microsoft.com/en-us/library/25y1ya39.aspx

于 2013-07-19T08:03:01.237 回答