我创建了一个C#VS2008程序的msi安装程序。该程序从位于安装文件夹中的xml文件中读取数据,并复制可在同一文件夹中找到的excel文件。
当我在调试模式或发布模式下运行它时,它工作正常。但是,使用MSI安装程序后,我使用真正的可执行文件,我收到以下错误:
错误:拒绝访问路径C:\。 (现已解决)
错误:找不到匹配的个人资料。联系您的服务提供商。 (现在已经解决了。)
错误:字典中没有给定的键。 (这发生过 在另一台机器上,一台笔记本电脑,当试图从csv转换为 Excel中。)
有关安装MSI后可能导致此问题的任何想法?
编辑:前两个错误已经解决,但是,第三个错误仍然存在。
答案 0 :(得分:0)
出于好奇:您在构建计算机上使用哪个.NET框架以及在笔记本电脑上安装了哪个.NET框架?您还需要安装Windows Installer。版本很重要,因此请检查您的构建计算机和笔记本电脑上是否安装了相同的Windows Installer版本。
答案 1 :(得分:0)
由于它在开发人员计算机上运行良好,因此很可能是程序所需的缺少组件。可能是组件(DLL等)可能未在目标计算机上注册。确保安装程序安装并注册程序所需的所有组件。
/在第一条评论
后更新此外,您还可以找到解决方案属性中使用的引用。见下图,
这将告诉我们使用的引用是什么。此外,复制本地列中任何显示 True 的内容都需要与目标计算机上的程序位于同一文件夹中,并且必须注册。 错误意味着它们在.NET框架中是自己的,不需要复制到目标计算机,因为它将自己在.NET框架中。
此外,您可以使用以下命令注册组件
在32位电脑上:
“regsvr32.exe”“组件文件路径和名称”
在64位电脑上:
“C:\ Windows \ SysWOW64 \ regsvr32.exe”“组件文件路径和名称”
您可以通过VBScript(* .vbs)文件运行它。