我有一个解决方案,其中可执行文件的目标平台最初设置为x86
,许多其他项目设置为 AnyCPU,并在 .Net 3.5 中包含 3 个项目(其他所有项目为 .Net 4.0)。我想这就是安装程序写入HKEY_LOCAL_MACHINE\SOFTWARE
注册表项的原因。
最近,我修复了一些问题,现在所有项目都是 .Net 4.0。此外,我将可执行目标平台设置为 AnyCPU。我发现应用程序现在安装在HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node
.
[侧边栏 - 我们有 p/invokes -
DllImport
属性 - 没有指定CallingConvention
. 当这在托管和非托管代码中都被修改为指定Cdecl
和__cdecl
时,我们能够将依赖项目升级到 .Net 4.0 而不会收到PInvokeStackImbalance
异常。]
我们目前在 Windows 7(64 位)机器上使用 VS2010 进行开发。我的问题是:安装程序\SOFTWARE\
最初是否写信是因为某些项目是 .Net 3.5?
此外,如果此应用程序打算安装在 WindowsXP(预计支持 32 位)机器上,注册表项是否有问题?更好的是,我应该在构建选项中寻找什么来确保在 WinXp 32 位系统上的兼容性?