Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# &引用;找到不明确的匹配项“;MSI Windows安装程序中出现错误1001_C#_.net_Logging_Windows Installer - Fatal编程技术网

C# &引用;找到不明确的匹配项“;MSI Windows安装程序中出现错误1001

C# &引用;找到不明确的匹配项“;MSI Windows安装程序中出现错误1001,c#,.net,logging,windows-installer,C#,.net,Logging,Windows Installer,我正在将一个应用程序从.NET3.5升级到.NET4.0,最终升级到4.6,该应用程序在安装过程中正在崩溃。当重新管理旧的托管C++代码到C++/CLI时,我改变了很多,但是除了 .NET < /C>设置之外,其他95%个C文件都没有被触动。代码也已从VS 2010移动到VS 2015,目标计算机已从32位Windows 7移动到64位Windows 10 在目标计算机上运行“我的新安装程序”会产生以下错误框: 错误1001:在安装的提交阶段发生异常。 此异常将被忽略,安装将继续。 -->找到不

我正在将一个应用程序从
.NET3.5
升级到
.NET4.0
,最终升级到
4.6
,该应用程序在安装过程中正在崩溃。当重新管理旧的托管C++代码到C++/CLI时,我改变了很多,但是除了<代码> .NET < /C>设置之外,其他95%个C文件都没有被触动。代码也已从
VS 2010
移动到
VS 2015
,目标计算机已从32位Windows 7移动到64位Windows 10

在目标计算机上运行“我的新安装程序”会产生以下错误框:

错误1001:在安装的提交阶段发生异常。 此异常将被忽略,安装将继续。 -->找到不明确的匹配项

过去的两个错误1001是关于
.NET
版本的差异,以及需要对代码进行更改。这些信息还更具体地说明了哪些文件有问题

我能够得到工作版本和新版本的日志文件。它们有相似之处,但有一行在旧日志中没有出现:

MSI(6C:A4)[11:17:04:754]:WIN64DUALFOLDERS:中的替换 “C:\Program Files(x86)\FOLDER”文件夹已被阻止 通过1掩码参数(文件夹对的iSwapAttrib成员=0)


我想知道这是否相关,出现了很多这样的行,然后日志看起来就不同了。我甚至不确定问题是否与代码有关,或者类似于安装程序项目的安装问题。有人知道从这里看哪里吗?

错误1001几乎总是自定义操作失败的下游结果,因此它将是代码失败、加载失败,诸如此类。无论哪种方式,它都需要调试代码路径或加载代码。这些托管代码自定义操作不会以“正常”方式加载。它们是使用反射实例化的,运行时的某些版本将被加载,而自动加载配置文件之类的事情将无法工作。在Everyone安装中,它们使用系统帐户运行。这些都具有下游效应,可能导致在正常用户加载环境中工作的代码失败(msiexec.exe调用的Dll不是这样)

双文件夹条目不相关。您尚未发布安装项目的体系结构,但32位安装项目无法安装到64位ProgramFiles文件夹。对于64位安装项目,您可能希望使用ProgramFiles64文件夹、CommonFiles64文件夹等


编辑:找到的不明确匹配可能是与定位安装程序类类型相关的反射错误

我想等到安装稳定后再感谢你,但你是对的——在兔子洞下面的自定义操作最终让我找到了一个使用旧的、不再受支持的控件的表单。这一切都需要更换控制装置,非常感谢。