C# MSI未在.NET安装项目中运行当前版本的代码

C# MSI未在.NET安装项目中运行当前版本的代码,c#,.net,windows-installer,setup-project,C#,.net,Windows Installer,Setup Project,我不确定发生了什么,但我的安装程序处于一种奇怪的状态——当我安装MSI时,它似乎没有运行当前版本的代码(我正在使用自定义操作)。我通过放置一些MessageBox.Shows来验证它,果然,它们没有弹出 我以前可能有过一些不成功的安装,这可能会使安装程序处于不好的状态……但是我该如何解决这个问题呢 谢谢…您不应该期望MessageBox.Show在.NET自定义安装程序操作中工作。这些操作在Windows Installer服务的上下文中运行,该服务不在交互式桌面上运行。如果要调试自定义操作,请

我不确定发生了什么,但我的安装程序处于一种奇怪的状态——当我安装MSI时,它似乎没有运行当前版本的代码(我正在使用自定义操作)。我通过放置一些MessageBox.Shows来验证它,果然,它们没有弹出

我以前可能有过一些不成功的安装,这可能会使安装程序处于不好的状态……但是我该如何解决这个问题呢


谢谢…

您不应该期望MessageBox.Show在.NET自定义安装程序操作中工作。这些操作在Windows Installer服务的上下文中运行,该服务不在交互式桌面上运行。如果要调试自定义操作,请尝试登录到事件日志(或任何其他不依赖于当前windows桌面且不需要管理或当前用户安全令牌的I/O操作)。

如果您认为正在运行.msi代码的旧副本,解决此问题的最佳方法是从%temp%目录中删除所有文件(在windows资源管理器地址栏中键入“%temp%”,您将看到此目录的内容并删除所有内容,然后重试。)

它可以工作。事实上,我的旧MessageBox.Shows会弹出…我使用MessageBox.Shows调试我的安装程序。@Swami-您是在XP机器上开发,但在较新的操作系统上部署/遇到此问题吗?我在Windows Server 2008虚拟PC上开发。有一个选项可以创建新的升级代码和产品代码。这有什么影响?什么时候最好生成这些新代码?