组合控制台工具并打包到单个 .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");

不幸的是,我无法访问这些控制台工具的源代码。

组合控制台工具并打包到单个 .NET DLL 中

是的,您正在寻找从嵌入资源运行可执行文件。

这将在 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#