部署项目无法安装MSI错误1305

时间:2011-12-19 23:18:39

标签: visual-studio-2008 windows-xp windows-installer mapped-drive

我有一个使用Visual Studio 2008构建的部署项目无法安装。它使用默认的GUI。转换到“进度”页面时发生错误。 GUI错误消息是:

  

从文件F:\ Packages \ Test \ Release \ Test.msi读取时出错。验证文件是否存在以及您是否可以访问它。

如果我使用/l*从命令行运行MSI,我会收到很多关于GUI元素大小不正确的错误,例如:

  

DEBUG:错误2826:对话框WelcomeForm上的控件Line1超出了对话框的边界,向右移动了3个像素   安装程序在安装此程序包时遇到意外错误。这可能表明此包装存在问题。错误代码是2826.参数是:WelcomeForm,Line1,在右边

我还得到了运行时显示的更详细的错误版本:

  

MSI(c)(08:EC)[17:06:27:026]产品:测试 - 错误1305.从文件F:\ Packages \ Test \ Release \ Test.msi读取错误。系统错误1008.验证文件是否存在以及您是否可以访问它。

其他MSI文件在此计算机上使用相同的用户帐户,该帐户是本地Administrators组的成员。整个Release \文件夹将SYSTEM设置为完全控制。 C:\ WINDOWS \ TEMP和C:\ Documents and Settings \ username \ Local Settings \ Temp都将SYSTEM设置为完全控制。

PC运行Windows XP SP2 32位,有足够的RAM和磁盘空间。

2 个答案:

答案 0 :(得分:2)

我遇到了此博客帖子评论中提到的SUBST问题: http://richardsleegers.blogspot.com/2006/04/error-1305-error-reading-from-file-msi.html

使用SUBST将F:驱动器映射到C:\ F_Drive。每次都从F:\ Packages \ Test运行MSI文件失败。从C:\ F_Drive \ Packages \ Test运行它。对于我的测试目的,这是一个可接受的解决方法。这适用于一些永远不必在生产硬件上处理SUBST的嵌入式软件。

发生此错误是因为MSI程序包在msiexec服务下运行,默认情况下使用LocalSystem帐户,并且SUBST映射特定于每个用户。

作为SUBST的替代方案,您可以在注册表中为所有用户(包括LocalSystem)创建DOS设备映射,以访问相同的映射:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\DOS Devices]
"F:"="\\??\\C:\\F_Drive"

答案 1 :(得分:0)

可以忽略控制错误。底线控件比对话框大,所以看起来更好。

通常,当另一个进程具有MSI的打开句柄时,会遇到从文件读取错误。确保您的MSI未使用Orca打开且Visual Studio未使用。您也可以在启动MSI之前尝试重新启动。

另外,请确保不要使用自定义操作打开磁盘上MSI数据库的句柄。