exe
我必须将驻留在同一文件夹中的文件(在安装时)复制msi installer
到某个不同的路径。为此,我在installer
课堂上编写了以下代码。
System.Diagnostics.Process process = new System.Diagnostics.Process();
System.Diagnostics.ProcessStartInfo startInfo = new
System.Diagnostics.ProcessStartInfo();
startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
startInfo.FileName = "xcopy";
startInfo.UseShellExecute = true;
string directory = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
string SourcePath = Path.GetFullPath("C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v7.0A\\Bin");
StreamWriter sw = new StreamWriter(@"C:\Users\lovestone\Desktop\data.txt");
sw.WriteLine(directory);
sw.WriteLine(SourcePath);
startInfo.Arguments = "\"" + directory + "\"" + " " + "\"" + SourcePath + "\"" + @" /e /y /I";
process.StartInfo = startInfo;
process.Start();
我对这个类没有任何问题,installer
因为它是data.txt
在给定路径上创建的(在安装时)。我应该如何将文件从复制directory
到SourcePath
?
我应该使用cmd
而不是xcopy
吗?
更新
正如我所提到的,我想从存在的同一个文件夹中复制一个exe
文件installer
。当我安装我的应用程序时。它显示一个错误:
Unable to find the file from "C:\Program Files (x86)\Default Company Name\inataller".
它试图从program files
目录中选择文件。但它应该与我所在的目录相同exe
。我不想hard-coded
找到 exe 的路径,因为它会分发给其他客户端。从同一文件夹中选择文件的适当代码是什么?
我对代码进行了一些更改
string directory = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location);
string SourcePath = Path.GetFullPath("C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v7.0A\\Bin");
File.Copy(Path.Combine(directory, "MyAdHocTestCert.cer"),Path.Combine(SourcePath, "MyAdHocTestCert.cer"));
现在它显示:Object reference not set to an instance of an object