将文件流传递到System.Diagnostics.Process.Start

本文关键字:System Diagnostics Process Start 文件 | 更新日期: 2023-09-27 18:23:35

我有一个文件,作为C#程序中的嵌入资源。我需要读取此资源,然后通过System.Diagnostics.Process.Start()命令将其传递给外部exe。外部exe需要指向其在操作系统中位置的资源路径。有没有办法把它当作小溪或类似的东西通过?还是我必须将其写入一个临时文件,然后将文件路径发送到外部exe?

嵌入的资源是证书文件外部exe是signtool。因此,由于其敏感性,我想尝试不将资源写入系统。

这可能吗?

将文件流传递到System.Diagnostics.Process.Start

不,这不可能立即实现。您调用的EXE必须以不同的方式编写,而且无论如何都没有像这样简单的方法将句柄从一个进程传递到另一个进程。

您可以将证书写入加密个人信息交换(PFX)格式的文件,然后在命令行上将文件路径和密码传递给signtool。

根据工具的不同,您可以将文件作为输入(仅限文本)传递,类似于CMD的"管道"(|)选项。这种方法仅适用于将标准输入作为数据源的工具(即大多数查找和替换工具,包括内置在Windows中的findstr)。

否则——无

请注意,如果您将证书作为应用程序(嵌入式资源)的一部分,则该证书已存在于磁盘上。短时间内单独保存与让其他工具使用没有太大区别。如果你真的需要保护它们,请在安全的地方安装单独的机器来处理签名。