我有用C#编写的Windows窗体应用程序。它取决于NHibernate NuGet包,并且我还为这个应用程序编写了InstallShield安装包。所有这些都是在Visual Studio Community 2015中完成的。混淆与应用程序和安装程序
这里是我的困惑:如果我为x64构建应用程序,dumpbin告诉我该应用程序的exe是64位的,但NHibernate的DLL和安装程序的setup.exe文件是仍然是32位。 32位安装程序如何包装我的64位应用程序?为什么NHibernate在为x64构建时变成64位呢,因为我认为NuGet包应该这样做?最终的问题:如果安装程序是32位的,我的应用程序是否仍能在64位x64机器上运行?提前致谢!
哦,我认为这是我失踪的部分。所以一个32位的setup.exe可能仍然包含一个64位的.mis。这就说得通了。但有一点我仍然困惑:所以我现在可以安装我的应用程序的32位和64位版本(使用dumpbin验证),但它们总是以目标机器上的Program Files结尾。程序文件(x86)中不应该有32位程序吗? – Rabadash8820
是的,但它听起来像是你已经创建了一个64位MSI包,在这两种情况下安装到ProgramFiles64Folder。 –
好的。因此,要安装64位应用程序,我需要定位ProgramFiles64Folder并重建x64平台的解决方案。要安装32位应用程序,我定位了ProgramFilesFolder并重建了x86平台的解决方案。 – Rabadash8820