Windows Installer错误消息

时间:2018-03-06 07:56:34

标签: windows installer

我写了一个OLEDB程序,现在我想创建安装msi安装文件,但在重建时出现以下错误。 错误:Error Pic安装程序在安装此程序包时遇到意外错误。错误代码是2330

2 个答案:

答案 0 :(得分:0)

您的Visual Studio Community Edition 2015安装产品在某处被破坏 - 错误对话框指示它正在尝试自我修复但无法访问原始安装源或其文件。我建议卸载VS 2015社区并重新安装(因为修复无法修复它,如对话框所示)。

答案 1 :(得分:0)

调试

我不确定是什么问题。但是,

  • 在Visual Studio中构建自己的MSI时,是否会启动自我修复?从图像中不太清楚。我会尝试启用日志记录,如下所述进行调试。首先是一些问题。
  • 您是否从不再可用或暂时脱机的网络共享(UNC路径)安装?或者您是否在某个时刻从映射驱动器安装Visual Studio 2015,并且驱动器不再映射?你能映射一下吗?也许这是一台关机的机器?请参阅下面的脚本,了解源路径指向的内容(可能缺少哪些可能的服务器共享)。
  • 你是否安装了Visual Studio,其中一个不同的用户帐户比你现在登录的那个?
  • 您是否尝试禁用该框上运行的任何安全软件以查看是否会阻止修复(应该停止任何可能触发修复的文件阻止)?
  • 这是阿拉伯语机器吗?右下角的字符似乎表明了这一点。我认为这可能会使事情复杂化 - 复杂的权利左派语言肯定容易受到奇怪的错误的影响。

您的错误编号与以下错误消息匹配:2330: Error getting file attributes - 我遇到的与此类方案有关的错误以及遇到磁盘错误的系统错误! 请检查您的磁盘是否有错误。还有一些我们很少看到的其他模糊问题。

您应该能够卸载并重新安装Visual Studio 2015 - 但如果没有一些调试我就不会这样做。卸载理论上也可能失败。我很确定它应该可行 - 正如菲尔已经建议的那样。

轻松修复?

如何并排安装Visual Studio 2017 Community Edition?我认为这样可行。你可能也不需要卸载2015 - 虽然这样做可能是个好主意 - 要“重新开始”。微软总是似乎找到了让你浪费时间的新方法。

虽然不太可能有所帮助,但您也可以尝试运行此工具来检查MSI本身是否有问题:https://support.microsoft.com/en-us/help/971187。你可以尝试很多这样的东西,但我认为它们不会有所帮助。

想一想 - 你最近是否进行了系统还原?

记录自我修复

获取自我修复日志文件的最简单方法是在机器上全局启用日志记录(我喜欢永久自动登录,很多人不会出于性能原因)。

有关如何执行此操作,请参阅installsite.org on logging全球所有机器上的设置“部分)。按照说明实施注册表更改,然后再次触发Visual Studio 2015自修复。使用随机名称在TMP文件夹中查找日志文件(按更改日期排序,以使日志显示在列表顶部)。在日志中搜索“ value 3 ”(这些是错误消息)并查看其内容。它应该告诉您哪个文件无法加载。

记录:在事件日志中,您可以尝试确定导致自我修复问题的特定组件。您可以在installsite.org上找到有关如何执行此操作的一些建议。

源路径

这可能不是很有帮助,但是我已经把它留了下来。

如上所述,Visual Studio 2015的源路径不可能丢失或无法访问(原始安装的运行位置 - 可能是网络共享位置)。

要查找最初安装的位置,可以使用此脚本在其安装名称中找到所有带“visual studio”的产品的源安装路径:

Set fso = CreateObject("Scripting.FileSystemObject")
Set output = fso.CreateTextFile("msiinfo.csv", True)
Set installer = CreateObject("WindowsInstaller.Installer")

On Error Resume Next ' we ignore all errors

output.writeline ("Name, InstallSource")

For Each product In installer.ProductsEx("", "", 7)

   name = product.InstallProperty("ProductName")
   installsource = product.InstallProperty("InstallSource")

   ' Write only package information for "Visual Studio" packages
   If InStr(name, "Visual Studio") Then
      output.writeline ( name & ", " & installsource )
   End If

Next

output.Close

<强>用法

  • 将上述脚本放在桌面上的*.vbs file中并运行它。
  • 输出将在桌面上msiinfo.csv - 操作应该非常快(秒)。
  • 在Excel或等效的电子表格工具中打开此输出文件。您也可以使用记事本打开它。
  • 查找Visual Studio安装的安装源路径。看看你是否可以映射它或将其联机(如果它是网络路径)。