我正在处理一个令人困惑的卸载/安装问题,我已经用尽了我的 google-foo,所以我来到这里希望有人能指出我正确的方向。
场景:我们使用 AnthillPro 将旧版 ASP 网站(内置于 VS2003)的夜间构建/部署到 Windows Server 2003 (x64 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 帐户安装它时,我在“添加/删除程序”小部件中看不到更新。几周前我最初发现了这个问题,并认为我通过手动将ALLUSERS属性添加到 MSI 并将其设置为 2 来修复它。同样,这是一个 Visual Studio 2003 解决方案,所以我不能只设置 All Users 属性通过界面。
但是,我可以看到有关 QA 和 Prod 的最新更新,因此开发盒似乎有些特别。我已经确认生成的 MSI 确实具有 ALLUSERS 属性,并且我尝试将其设置为 1 而不是 2(根据此讨论)。
每次构建都会覆盖 MSI,因此原始 MSI 确实没有保留在执行安装的目录中,但如果我只是尝试重新部署已经存在的内容,它仍然会失败。
如果我登录到开发 Web 服务器并自己安装它,确保在 UI 中选择了所有用户选项,如果我尝试另一个自动部署,它会表现出相同的行为。如果我确保未在盒子上安装更新并启动自动部署,它将成功(在发出有关卸载无法卸载任何内容的警告之后),但随后将失败并显示“源不可用" 如果我在此之后尝试另一个自动部署,则会出错。
包含 MSI 的文件夹和 MSI 本身的权限在 dev、QA 和 Prod 之间似乎是相同的。不幸的是,我没有 AnthillPro 使用的帐户的密码(企业安全万岁),但如果我愿意的话,我至少可以访问那些愿意并愿意检查事情的人。我确实使用这种方法确认,当我安装 AnthillPro 帐户可以看到的最新版本的更新时。
有人对可能导致此问题的原因有任何想法吗?
在大量使用这个网站几年之后,我终于打破并发布了我的第一个问题,所以如果这种情况看起来令人困惑或令人费解,请保持温和。如有必要,我可以提供更多详细信息。