我正在尝试为我开发的平台启动外部更新程序.我想启动此更新程序的原因是因为我处理平台更新和许可证配置的配置实用程序与将部署更新的文件夹中的其他程序集共享依赖关系.因此,虽然我可以重命名配置实用程序并在部署更新时覆盖它,但我无法重命名或覆盖它所依赖的DLL.因此,外部更新程序应用程序.
我正在处理配置实用程序中的所有更新收集逻辑,然后尝试启动更新程序以处理实际的文件复制/覆盖操作.显然,由于文件正在使用中,我需要配置实用程序在更新程序开始后立即退出.
我遇到的问题是我使用标准的Process.Start方法启动更新程序,一旦配置实用程序退出,更新程序进程也会被终止.
有没有什么方法可以创建一个超过其父级的进程,或者启动一个可以超出启动它的程序运行的外部应用程序?
编辑:
显然,在我的更新程序应用程序中,我错误地计算了传递给它的命令行参数的数量.因此,更新程序将立即退出.我误解了这意味着启动器应用程序正在杀死"子"进程,而事实上并非如此.
以下答案是正确的.
我看到一个非常奇怪的错误,我很难追踪到。我认为它与我的Rhino ESB的配置有关,尽管我不确定RSB是否实际上是由它引起的,所以我想问一下是否有其他人在MSMQ的任何其他用法中遇到了此问题。
我将RSB用作Web应用程序中的客户端(ASP.NET,客户端在后台运行)。客户端通过用于RSB的MSMQ绑定与Windows服务对话。重新启动服务似乎永远不会对MSMQ产生影响,手动重新启动IIS也不会。但是,每当我实际重新启动计算机本身时,MSMQ始终拒绝启动备份,并声称“队列处于不一致状态”。尝试手动启动MSMQ会导致相同的错误,实际上使MSMQ安装完全无用。解决此问题的唯一方法是实际删除然后重新安装MSMQ。
我通过全能的Google找到的唯一信息是对MSMQ 2.0中的问题的引用(此问题在MSMQ 4.0中发生)。我已经验证了服务和网站在关闭时都在总线上调用了Dispose。
有谁知道为什么会发生这种情况?谢谢!