2015-02-10 81 views
1

我必须卸载现有的窗口服务,然后复制 - 将新文件替换到服务位置,然后再次安装。卸载现有的窗口服务,替换新的文件,并在c#中重新安装它#

当我停止windows应用程序并单独执行它时,它工作正常。

但是,问题是做的过程中,当连续编程,

  • 卸载

  • 复制新文件

  • 在拷贝安装

我被拒绝访问错误文件步骤。甚至我试图删除文件。 问题是一样的。

当我从目录中手动删除/复制粘贴时,它正在工作。

我使用:

Microsoft.VisualBasic.FileIO.FileSystem.CopyDirectory(源极路径,目标路径,TRUE);

,并从这里也试过:

ASP.NET C# Copy Directory with SubDirectories with System.IO

任何帮助将不胜感激。

在此先感谢

编辑:

我停止服务卸载之前,如:

TimeSpan timeout = TimeSpan.FromMilliseconds(5000); 

var ctlr = new ServiceController(); 
ctlr.ServiceName = serviceName; 
ctlr.Stop(); 
ctlr.WaitForStatus(ServiceControllerStatus.Stopped, timeout); 
result.Success = true; 

卸载:

ManagedInstallerClass.InstallHelper(new string[] { "/u",service path }); 

更换新的文件:

安装:

ManagedInstallerClass.InstallHelper(new string[] { userName, password, servicePath }); 

回答

0

有时它需要一些时间来干净地停止服务并取消安装。也许在卸载并复制新文件操作之后,您可能需要等待一段时间。

+0

我卸载它之前停止该服务什么的。与“WaitForStatus”。 – 2015-02-10 05:35:10

0

好的,只需在命令提示符下键入services.msc 它会打开当前在该机器上运行的服务列表 然后搜索您的窗口服务,右键单击并选择选项来停止服务。 一旦服务被停止,你可以做你想做

Visit 

https://plnkr.co/edit/HJk4xN42AsxpNzCc8vPM?p=preview

+0

要求是:我们必须以编程方式进行。实际上,我们正在准备安装程序,因为我们必须安装 - 卸载(现有的相同)服务。 – 2015-02-10 06:09:53

相关问题