C# 如何检测prism和amp之间的差异;使用TwainDotNET时使用非prism 64位应用程序

C# 如何检测prism和amp之间的差异;使用TwainDotNET时使用非prism 64位应用程序,c#,mvvm,prism,twaindotnet,C#,Mvvm,Prism,Twaindotnet,我正在尝试使用Windows 2008终端服务器(64位)上运行的内部应用程序。对于这个库不能在64位机器上本机使用,并且它(以及所有使用它的应用程序)应该针对x86平台进行编译,我没有发现任何评论。(我正在使用VS2010) 然而,问题是: 示例应用程序-TestAppWpf(来自TwainDotNET包)-在针对任何CPU进行编译时(因此在服务器上以64位模式运行),通常在(我们的)服务器上工作 使用带有Unity/MEF的Prism的我的(即使是最简单的示例)应用程序总是崩溃,例外情况是

我正在尝试使用Windows 2008终端服务器(64位)上运行的内部应用程序。对于这个库不能在64位机器上本机使用,并且它(以及所有使用它的应用程序)应该针对x86平台进行编译,我没有发现任何评论。(我正在使用VS2010) 然而,问题是:

  • 示例应用程序-TestAppWpf(来自TwainDotNET包)-在针对任何CPU进行编译时(因此在服务器上以64位模式运行),通常在(我们的)服务器上工作
  • 使用带有Unity/MEF的Prism的我的(即使是最简单的示例)应用程序总是崩溃,例外情况是“试图加载格式不正确的程序(来自HRESULT的异常:0x8007000B)”
[使用的代码始终相同:

Loaded += delegate
            {
                try
                {
                    Twain _twain;
                    var hook = new WpfWindowMessageHook(App.Current.MainWindow);
                    _twain = new Twain(hook);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(GetText(ex, true), "twain", MessageBoxButton.OK, MessageBoxImage.Error);
                };
            };
接球部分现在只是愚蠢的“倾倒”。。。 当调用twain_32.dll(DsmParent函数)库时,异常首先发生

[DllImport("twain_32.dll", EntryPoint = "#1")]
        public static extern TwainResult DsmParent([In, Out] Identity origin, IntPtr zeroPtr, DataGroup dg, DataArgumentType dat, Message msg, ref IntPtr windowHandle);
]

  • 我也尝试过重新编译整个项目和库以达到x86的目标,但仍然有类似的结果-TestAppWpf有效&我的应用程序没有
  • 无需提及的是,在我的开发机器(32位)上,一切都像一个符咒
我完全无法找到示例应用程序和我自己的应用程序(均在64位环境中运行)之间的差异。

任何建议/提示/或技巧都将不胜感激


Martin F.

对此有一个答案将是非常好的,但无论如何我将不得不切换到32位应用程序。因为虽然示例应用程序以64位模式启动,但它无法访问任何32位twain驱动程序。如果能回答这个问题,那就太好了,但无论如何我都必须切换到32位应用程序。因为尽管示例应用程序以64位模式启动,但它无法访问任何32位twain驱动程序。