我们有一大套产品,包括:如何使用VS安装项目在32位或64位Windows上正确安装“任意CPU”代码?
- 用VB6编写的桌面应用程序。
- 用.NET编写的桌面应用程序。
- 用.NET编写的Windows服务。
- 用.NET编写的ASP.NET web应用程序。
- 用.NET编写的ASMX和WCF服务。
所有的.NET代码都是在VS2008中编写的,面向.NET 3.5和“任何CPU”。我们可以针对特定的处理器,但不愿意这样做,因为它会导致依赖树进一步下降。我们还没有能够将任何东西移动到.NET 4.0,但稍后它将成为一种选择。
所有的应用程序共享一些重要的注册表项。我们通过让.NET代码始终查看32位注册表视图来解决注册表重定向问题。一些.NET代码通过COM interop与VB6 DLL进行对话,但这非常有限,我们可以轻松地删除这种依赖关系(现在注释掉,稍后在.NET中重写)。
所有的Web应用程序和服务都设计为托管在IIS中。 5.1以后的所有版本都需要支持。
我们的构建虚拟机当前正在运行Windows XP(32位)。如有必要,我们可以创建新的。
我的任务是确保所有内容在64位Windows(所有版本)上均可正常运行。我目前遇到.NET安装项目的问题,所有这些都是使用VS2008安装项目模板编写的。
即使源代码是Any CPU,安装项目也没有此功能。您必须将TargetPlatform
属性设置为一个处理器。这不是很有用。我们不能有一个setup.exe
在32位O/S上安装为32位,在64位O/S上安装为64位?如果我是安装应用程序的最终用户,我不知道要运行哪个安装程序。