我正在努力将应用程序从.NET 3.5
升级到.NET 4.0
,最终升级到4.6
,这在安装过程中当前正在崩溃。在将旧的托管C ++代码重新编写为C ++ / CLI时,我做了很多改动,但除了.NET
设置之外,还没有触及约95%的其他C#文件。代码也已从VS 2010
移至VS 2015
,目标计算机已从32位Windows 7迁移到64位Windows 10。
在目标计算机上运行我的新安装程序会产生以下错误框:
错误1001:安装的提交阶段发生了异常。 此异常将被忽略,安装将继续。 - >发现了模糊的匹配。
过去几次错误1001一直在考虑.NET
版本的差异,以及对代码的必要更改。这些消息也更具体地说明了哪些文件存在问题。
我能够获得工作版和新版的日志文件。它们有相似之处,但在旧日志中没有出现的一条线是:
MSI(s)(6C:A4)[11:17:04:754]:WIN64DUALFOLDERS:替换为 'C:\ Program Files(x86)\ FOLDER'文件夹已被阻止 通过1掩码参数(文件夹对的iSwapAttrib成员= 0)。
我想知道这是否相关,出现了很多这些行,然后日志看起来与那里不同。如果问题出在代码上,或者类似于安装程序项目的安装问题,我甚至都不肯定。有没有人对从这里看哪里有任何想法?
答案 0 :(得分:0)
错误1001几乎总是自定义操作失败的下游结果,因此它将是代码失败,加载失败等等。无论哪种方式,它都需要调试代码路径或加载代码。这些托管代码自定义操作未以“正常”方式加载。它们使用反射进行实例化,将加载某些版本的运行时,并且某些内容(如自动加载配置文件)将无法正常工作。在Everyone安装中,它们使用System帐户运行。这些都具有下游效果,可能导致在正常用户加载环境中运行的代码失败(由msiexec.exe调用的Dll不是)。
双文件夹条目无关。您尚未发布安装项目的体系结构,但32位安装项目无法安装到64位ProgramFiles文件夹。对于64位安装项目,您可能希望使用ProgramFiles64Folder,CommonFiles64Folder等。
编辑:发现不明确的匹配可能是与查找安装程序类类型相关的反射错误。