我的.NET应用程序是32位的,因为我在其中使用了TWAIN。但是我需要编写一个64位的库或应用程序,并从我的程序中调用其方法。
我必须创建一个64位的库来与WMI SMO进行交互,如果将其编译为32位的dll,则其功能无法正常工作。
我该如何解决这个问题?是否可以从32位应用程序中使用64位库?
我该如何解决这个问题?是否可以从32位应用程序中使用64位库?
您不能从64位可执行文件中引用32位库,反之亦然。这是一种技术限制。
但是,根据您的其他约束条件,您可以决定采用基于服务的架构来避免像您这样的问题,并在未来更具敏捷性。
实际上,您可以编写专门解决一个单一目的(扫描、与WMI交互等)的“微”服务,然后从应用程序中调用它们。这样,您完全可以选择任何您需要的技术/架构来完成应用程序所需的每个任务。将您的“功能”隔离在服务中,允许您拥有每个服务的不同演进路径,因为每个服务与其他服务松耦合。
这种解决方案需要编写比使用库更多的代码。首先,您需要创建一个Windows服务(msdn)来包装您的代码,然后您需要实现通信渠道。请查看WCF和WebApi2,以了解您可以实现什么。