使用产品代码卸载失败“安装源不可用" [英] Uninstall with Product Code Fails "Installation Source Not Available"

查看:71
本文介绍了使用产品代码卸载失败“安装源不可用"的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在处理一个令人困惑的卸载/安装问题,我已经用尽了我的 google-foo,所以我来到这里希望有人能指出我正确的方向.

I'm working on a perplexing uninstall/install issue and I've exhausted my google-foo so I'm coming here hopeful that someone can point me in the right direction.

场景:我们正在使用 AnthillPro 在 Windows Server 2003 (x64 SP2) Web 服务器上构建/部署旧版 ASP 网站(内置于 VS2003),并且在大多数情况下它运行良好.AnthillPro 帐户使用产品代码卸载前一天晚上的更新包,然后使用 MSI 的名称安装新包.

The scenario: We are using AnthillPro to do nightly builds/deployments of a legacy ASP website (built in VS2003) to Windows Server 2003 (x64 SP2) web servers and for the most part it works fine. The AnthillPro account uses the product code to uninstall the previous night's update package and then installs the new one using the name of the MSI.

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

这在我们的 QA 和生产网络服务器上运行良好,但开发服务器总是给我们错误:
此产品的安装源不可用.验证源是否存在并且您可以访问它.

This works just fine on our QA and Production web servers, but the dev server always gives us the error:
The installation source for this product is not available. Verify that the source exists and that you can access it.

最有趣的细节是,当 AnthillPro 帐户安装它时,我在添加/删除程序小部件中看不到更新.几周前我最初发现了这个问题,并认为我通过手动添加 ALLUSERS 属性设置为 MSI 并将其设置为 2.同样,这是一个 Visual Studio 2003 解决方案,所以我不能只通过界面设置 All Users 属性.

The most interesting detail about this is that when the AnthillPro account installs it, I cannot see the update in the Add/Remove Programs widget. I originally discovered this issue a few weeks ago and thought I fixed it by manually adding the ALLUSERS property to the MSI and setting it to 2. Again, this is a Visual Studio 2003 solution, so I can't just set the All Users property through the interface.

不过,我可以看到 QA 和 Prod 的最新更新,因此开发箱似乎有些特别.我已经确认生成的 MSI 确实具有 ALLUSERS 属性,并且我尝试将其设置为 1 而不是 2(每个 this 讨论).

I am able to see the latest update on QA and Prod, however, so it seems to be something special with the dev box. I've confirmed that the resulting MSI does indeed have the ALLUSERS property, and I've tried playing with setting it to 1 instead of 2 (per this discussion).

MSI 会被每次构建覆盖,因此原始 MSI 确实没有留在执行安装的目录中,但如果我只是尝试重新部署已经存在的内容,它仍然会失败.

The MSI is being overwritten with each build, so it is true that the original MSI is not sticking around in the directory the install is being executed from, but if I simply try redeploying what is already there, it still fails.

如果我登录到开发 Web 服务器并自己安装它,确保在 UI 中选择了所有用户选项,如果我尝试另一个自动部署,它会表现出相同的行为.如果我确保更新没有安装在盒子上并启动自动部署,它会成功(在踢出关于卸载无法卸载任何东西的警告之后),但会失败并显示源不可用" 如果我​​在此之后尝试另一个自动部署,则会出现错误.

If I log in to the dev web server and install it myself, making sure that the All Users option is selected in the UI, it exhibits the same behavior if I try another automated deployment. If I ensure that the update is not installed on the box and kick off an automated deployment, it will succeed (after kicking out a warning about the uninstall not being able to uninstall anything), but will then fail with the "source is not available" error if I try another automated deployment after that.

包含 MSI 的文件夹和 MSI 本身的权限在 dev、QA 和 Prod 之间似乎相同.不幸的是,我没有 AnthillPro 使用的帐户的密码(公司安全万岁),但我至少可以访问一个愿意检查的人,如果我愿意的话.我确实使用这种方法确认,当我安装最新版本的更新时,AnthillPro 帐户可以看到它.

The permissions on the folder containing the MSI and the MSI itself appear to be identical between dev, QA, and Prod. I do not have the password for the account that AnthillPro uses unfortunately (hooray for corporate security), but I at least do have access to someone who does and is willing to check on things if I am so inclined. I did confirm using this method that when I install the latest version of the update that the AnthillPro account can see it.

有人对可能导致此问题的原因有任何想法吗?

Does anyone have any ideas on what could be causing this issue?

在大量使用这个网站几年后,我终于崩溃并发布了我的第一个问题,所以如果这种情况看起来令人困惑或令人费解,请保持温和.如有必要,我可以提供更多详细信息.

After a few years of utilizing this site heavily, I am finally breaking down and posting my first question, so please be gentle if this scenario appears confusing or convoluted. I can provide more details if necessary.

推荐答案

我终于通过简单地卸载所有版本的 Web 应用程序,然后手动检查注册表并删除对 Web 应用程序名称的任何和所有引用,升级来解决此问题代码以及每个版本的各种产品代码.

I finally fixed this by simply uninstalling all versions of the web app and then manually going through the registry and removing any and all references to the web app's name, upgrade code and the various product codes for each version.

压力很大,但我终于想通了.留在这里也许是为了在未来提醒其他人注册表永远是你的敌人.

A lot of stress, but I finally figured it out. Leaving this here to maybe remind someone else in the future that the registry is always your enemy.

这篇关于使用产品代码卸载失败“安装源不可用"的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆