Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.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
Visual studio 2008 部署项目无法安装,MSI错误为1305_Visual Studio 2008_Windows Xp_Windows Installer_Mapped Drive - Fatal编程技术网

Visual studio 2008 部署项目无法安装,MSI错误为1305

Visual studio 2008 部署项目无法安装,MSI错误为1305,visual-studio-2008,windows-xp,windows-installer,mapped-drive,Visual Studio 2008,Windows Xp,Windows Installer,Mapped Drive,我有一个用VisualStudio2008构建的部署项目,但安装失败。它使用默认的GUI。该错误在转换到进度页时发生。GUI错误消息为: 读取文件F:\Packages\Test\Release\Test.msi时出错。验证该文件是否存在,以及您是否可以访问它 如果我使用/l*从命令行运行MSI,我会收到很多关于GUI元素大小不正确的错误,例如: 调试:错误2826:对话框WelcomeForm上的控制线1超出对话框边界的右侧3像素 安装程序在安装此程序包时遇到意外错误。这可能表明此软件包存在问

我有一个用VisualStudio2008构建的部署项目,但安装失败。它使用默认的GUI。该错误在转换到进度页时发生。GUI错误消息为:

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

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

调试:错误2826:对话框WelcomeForm上的控制线1超出对话框边界的右侧3像素 安装程序在安装此程序包时遇到意外错误。这可能表明此软件包存在问题。错误代码是2826。参数为:WelcomeForm,第1行,右侧

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

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

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


电脑运行的是32位Windows XP SP2,内存和磁盘空间充足。

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

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

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

我遇到了本博客评论中提到的问题:

使用SUBST将F:驱动器映射到C:\F\U驱动器。从F:\Packages\Test运行MSI文件每次都失败。从C:\F\u 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"

确保奥卡已经关闭。还尝试在测试之前关闭Visual Studio的所有实例。我通常有一个不与.MSI交互的自定义操作,但为了安全起见,我尝试将自定义操作完全删除。以上任何一项都不能解决这个问题。重新启动也一样。非常感谢!在我的例子中,这是一个Windows8应用程序的部署,但症状相同。我不知道驾驶地图的简单方法,很高兴今天我学到了一些新东西!:-)