"Visual Studio Setup"项目是否适合不同版本的复杂设置?
该应用程序相当大(> 500,000行代码)并且正在不断发展.新版本每6至10个月发布一次.我们有多个配置文件(INI和XML),注册表项,数据库迁移脚本等.应用程序正在从Visual Basic 6.0迁移到.NET.旧的安装程序是使用Installshield构建的.对Installshield的反馈是:适应性差,重用性差 - 这就是我们评估"Visual Studio Setup"作为替代方案的原因.
我们考虑的其他产品:
我们不想考虑的解决方案:
我有一个32位应用程序和一个32位安装程序,用Wise Installation Studio编写.我知道 ......我不应该使用Wise,我应该切换到别的东西.但就目前而言,我坚持不懈.
我们的应用程序是图形密集型并且为了提高性能,我们希望它在运行时禁用桌面组合(Windows Aero).我们通过在以下位置添加注册表项在32位系统上完成了此操作:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers
Run Code Online (Sandbox Code Playgroud)
价值为DISABLEDWM.
这将在默认情况下检查EXE属性的兼容性选项卡中设置"禁用桌面组合"复选框.
这在32位系统上运行良好,但在64位系统上运行安装程序时,Windows会将注册表项的创建重定向到HKLM\SOFTWARE\Wow6432Node,并且标志未正确设置.如果我在64位注册表视图中手动创建一个条目,那么它的工作原理.
那么如何强制在我们的32位安装程序的64位注册表视图中创建此注册表项?或者除了创建注册表项之外,还有更好的方法来设置此属性吗?
我们在自定义应用程序包中遇到Kerberos和/或NTLM身份验证失败,或者使用WISE打包安装程序为Windows 7设计.在Windows 7上,它们工作正常,但它们现在在Windows 10上失败.它们在使用Microsoft SCCM工具在Windows 10上安装期间都失败,并且在安装过程中对网络上的SMB共享使用Kerberos身份验证时它们特别失败.我们可以在网络跟踪中看到客户端应用程序从Kerberos故障转移到NTLM,从而实现了身份验证事务.我们不确定为什么.我们有一个大规模的Active Directory环境.因为WISE包是comiled我们无法调查.在成功的Windows 7计算机上,计算机在执行程序包时需要访问共享,并且登录用户必须具有SMB共享上的读取和执行访问权限.我们可以使用Windows 7系统帐户访问相同的 SMB共享,但在使用Windows 10系统帐户时则无法访问.很奇怪!这是包内的代码问题吗?这可能很重要:SMB共享使用DNS别名,不确定这是否有所不同.主机的真实姓名是不同的.使用主机的真实姓名而不是别名时,似乎解决了访问问题.