我被要求编写programm,从ftp 获取应用程序的文件,然后启动该应用程序。在本地计算机上它工作正常,但在终端服务用户第二次运行时会抛出:该进程无法访问该文件,因为它被另一个进程使用。
此方法更新文件:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using Microsoft.Win32;
namespace fmstart {
class fmUpd {
private static string updFile="fmupdate.inf";
private static string tmpPath = @"C:\Program Files\SRZNerpa\FinMagic\";
public static void Update()
{
FTPClient ftpCl=new FTPClient(@"ftp://srz-web.nerpa.srz:21/FM2Update/","anonymous", "anonymous");
FileStream updateStream=File.Create(tmpPath+updFile);
ftpCl.DownloadFile(updFile,updateStream);
updateStream.Flush();
updateStream.Close();
IEnumerable<string> updFiles=File.ReadLines(tmpPath+updFile);
foreach (string fileName in updFiles) {
if (fileName!=String.Empty) {
FileStream fs = File.Create(@"C:\Program Files\SRZNerpa\FinMagic\" + fileName.Trim(),1024);
ftpCl.DownloadFile(fileName, fs);
fs.Flush();
fs.Close();
fs.Dispose();
GC.Collect();
}
}
}
}
}
此代码开始已更新App:
fmUpd.Update();
ProcessStartInfo fm = new ProcessStartInfo();
fm.FileName = @"C:\Program Files\SRZNerpa\FinMagic\finmagic.exe";
fm.UseShellExecute = true;
Process Proc = Process.Start(fm);
Application.Exit();
如何使其在终端服务站上运行? 谢谢。