有没有办法将 bat 文件添加到 Visual Studio 项目并从那里启动它,而不是有 2 个文件?我试图直接添加一个批处理文件,但没有奏效。
问问题
1286 次
1 回答
0
BAT 文件需要物理地存在于文件系统中的某个位置才能运行,因此这样做只会带来只发送一个文件(主 .EXE)而不是同时发送两个文件的好处。
您可以将 .BAT 添加到项目中,将Build Action
toEmbedded Resource
和Copy to Output Directory
to设置为Do not copy
。然后在运行时,当你想执行它时,你必须将它解压到一个临时目录(未测试,但它应该显示这个想法):
Stream batFileStream = Assembly.GetExecutingAssembly().GetManifestResourceStream("Project1.Test.bat");
FileStream tempFileStream = File.Create(Path.Combine(Path.GetTempPath(),"Test.bat"));
batFileStream.CopyTo(tempFileStream);
batFileStream.Close();
tempFileStream.Close();
然后从临时位置运行它:
Process.Start(Path.Combine(Path.GetTempPath(), "Test.bat"));
另一种替代方法是考虑将 bat 文件功能直接集成到您正在执行的 C# 代码中,然后删除该文件。
于 2013-07-07T20:38:02.830 回答