使用ClickOnce部署识别目标机器(32位或64位)

问题描述:

我有一个Windows Forms应用程序,并且正在通过ClickOnce部署部署该应用程序。现在,我有一个第三方DLL文件,它有32位和64位操作系统的不同版本。使用ClickOnce部署识别目标机器(32位或64位)

是否可以通过ClickOnce部署基于目标机器(32位或64位)的不同DLL文件?

+0

两个不同的dll版本有相同的文件名吗? – codeConcussion 2010-12-01 14:39:26

+0

@whatknott:是的,这两个dll具有相同的名称,甚至是版本号。唯一的区别是大小。 – JPReddy 2010-12-02 05:09:47

[编辑]

这是没有必要使用反射。您可以直接在加载程序中添加对程序的引用,并将其启动。在Tech and Me上发布了一篇关于此代码的博客文章。


您可以在您的部署中包括这两个版本,但以不同的名称命名。然后有一个加载器应用程序检查,如果你在一个32位或64位系统,复制你真正的程序链接到正确的DLL(例如thirdparty64.dll - > thirdparty.dll),然后从加载程序调用您的程序,例如 Assembly.Load并使用反射来启动您的主要方法。

更简单的方法是将应用程序编译为x86,确保它始终以32位模式运行。如果您不依赖32/64位版本的机器上安装的特定应用程序,这可能是最佳选择。