组合控制台工具并打包到单个 .NET DLL 中
本文关键字:单个 NET DLL 控制台 工具 组合 | 更新日期: 2023-09-27 18:30:23
有没有办法组合控制台工具并打包到托管的.net DLL中。然后,我将能够通过调用 DLL 中的函数来调用每个控制台工具的函数。
例如(仅举个例子)
trim.exe
Usage:trim.exe <input> <ouput>
copy.exe
Usage:copy.exe <input> <ouput>
然后我就可以像这样的函数一样调用它们
Utilities.Trim("input.txt","ouptut.txt");
Utilities.Copy("input.txt","ouptut.txt");
不幸的是,我无法访问这些控制台工具的源代码。
是的,您正在寻找从嵌入资源运行可执行文件。
这将在 C# 程序中嵌入外部可执行文件会有所帮助。
可能的解决方案是运行外部工具,如下所示:
string windowsVersion = Utilities.GetWindowsVersion();
//...
static class Utilities { // Just a sample of cmd.exe invocation
public static string GetWindowsVersion() {
using(Process versionTool = new Process()) {
versionTool.StartInfo.FileName = "cmd.exe";
versionTool.StartInfo.Arguments = "/c ver";
versionTool.StartInfo.UseShellExecute = false;
versionTool.StartInfo.RedirectStandardOutput = true;
versionTool.Start();
string output = versionTool.StandardOutput.ReadToEnd();
versionTool.WaitForExit();
return output.Trim();
}
}
}
您可以将这些可执行文件嵌入到程序中(作为资源),在运行时将这些工具提取到特定位置,然后按照上面指定的方式运行这些工具。
另请查看以下线程:process.start() 嵌入式 exe,无需首先提取到文件 C#