2012-04-20 126 views
0

我工作的一个令人困惑的卸载/安装的问题,我已经用尽我的谷歌,富,所以我来到这里,希望有人能指出我在正确的方向。卸载与产品代码失败“安装源不可用”

场景: 我们使用AnthillPro在夜间做构建/遗留ASP网站(建于VS2003)到Windows Server 2003(64位SP2)Web服务器的部署,在大多数情况下它工作正常。 AnthillPro帐户使用产品代码卸载前一天晚上的更新包,然后使用MSI的名称安装新包。

例子:
msiexec /qb /x {89B05BA3-679C-4120-BD6A-339BC3E726FD}
msiexec /qb /i "Update package.msi" PARAMETERVAL=X

这个工程我们的QA和生产Web服务器上就好了,但开发服务器总是给我们的错误:
The installation source for this product is not available. Verify that the source exists and that you can access it.

最有趣的详细介绍这是当AnthillPro帐户安装它时,我看不到添加/删除程序窗口小部件中的更新。几个星期前我最初发现了这个问题,并认为我通过手动将MSI的ALLUSERS属性添加到MSI并将其设置为2来解决此问题。再次,这是一个Visual Studio 2003解决方案,因此我不能只设置All Users属性通过界面。

我能看到QA和PROD最新的更新,然而,这似乎是与开发框一些特别的东西。我已经确认MSI确实具有ALLUSERS属性,并且我尝试将它设置为1而不是2(根据this讨论)。

MSI被每个版本覆盖,所以确实原来的MSI没有在执行安装的目录中存在,但如果我只是尝试重新部署已经存在的目录,它仍然会失败。

如果我登录到开发网络服务器,并安装它自己,确保所有用户选项在UI中选择,它表现出同样的行为,如果我尝试另一种自动部署。如果我确保更新没有安装在盒子上并启动自动化部署,它会成功(在解除安装后不能卸载任何内容的警告之后),但会失败,并显示“源不可用” “如果我在此之后尝试另一个自动化部署,则会出错

包含该MSI和MSI本身似乎是dev的,QA和PROD之间相同的文件夹的权限。我不知道AnthillPro使用的帐户的密码(为了企业安全而使用),但我至少确实有机会接触到愿意检查某些事情的人,如果我倾向于这样做的话。我确实使用这种方法,当我安装AnthillPro帐户可以看到它的最新版本的更新。

任何人都不会有什么可能会造成这个问题的任何想法?

几年后利用该网站严重,我终于打破和发布我的第一个问题,所以请这种情况下出现混乱或令人费解的是温和的。如有必要,我可以提供更多细节。

回答

0

我终于通过简单的卸载Web应用程序的所有版本,然后通过注册表手动去和删除任何和所有引用到Web应用程序的名称,升级代码和每个版本的各种产品代码解决了这个问题。

很多压力,但我终于明白了。留在这里可能会提醒别人将来注册表永远是你的敌人。

1

我就回答这个问题以供参考:属性设置ALLUSERS 2必须安装每用户而不是每台机器的MSI。那么只有安装产品的用户才会在添加/删除程序中看到它。

如果see the documentation for ALLUSERS你会看到ALLUSERS = 1是正常的做法,迫使每台机器安装。该文档指出:“...值ALLUSERS = 2使系统能够重置ALLUSERS的值,并根据用户的权限和Windows版本来重置安装上下文。” 换句话说,msiexec已经由用户安装,因为缺少安装帐户权限。。此行为在不同的操作系统上可能会有所不同。

有可能通过自定义操作设置ALLUSERS更改为每台机器安装状态= 1后RemoveExistingProducts操作已在重大升级InstallInitialize之前运行。这涉及到测试,但是如果使用以前按用户安装的相同帐户运行安装,则只能使用管理权限。

+0

看来我记录了这个更改从每个用户到每台机器安装在这个较旧的帖子:http://stackoverflow.com/a/12291807/129130 – 2014-01-28 20:52:20