0
我有一个WCF服务,部署到IIS的x86和x64实例。该服务本身是为AnyCPU编译的。该服务使用C++程序集,它具有两种不同的位。两种不同的位都被命名为相同(foo.dll)有没有办法用WCF服务部署x86和x64版本的组件?
是否有一种方法可以部署两种不同的bitness,并让IIS/WCF实时动态显示需要什么?现在,弄清楚要部署什么是一场噩梦。
有没有更好的方法?
我有一个WCF服务,部署到IIS的x86和x64实例。该服务本身是为AnyCPU编译的。该服务使用C++程序集,它具有两种不同的位。两种不同的位都被命名为相同(foo.dll)有没有办法用WCF服务部署x86和x64版本的组件?
是否有一种方法可以部署两种不同的bitness,并让IIS/WCF实时动态显示需要什么?现在,弄清楚要部署什么是一场噩梦。
有没有更好的方法?
这个怎么样?
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
你是如何加载C++动态链接库目前? –
@Samshiles接口是相同的,所以只有2个版本。这工作正常。但是当我从我的工作站部署到某个开发箱时,总是会出现混淆什么是什么框的问题。 – AngryHacker