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

C# 将文件流传递到System.Diagnostics.Process.Start,c#,file,stream,signtool,C#,File,Stream,Signtool,我的C#程序中有一个作为嵌入式资源的文件。我需要读取此资源,然后通过System.Diagnostics.Process.Start()命令将其传递给外部exe。外部exe希望资源路径指向其在操作系统中的位置。有没有办法让它像小溪一样通过?或者我必须将其写入一个临时文件,然后将文件路径发送到外部exe 嵌入的资源是证书文件external exe is signtool。因此,由于敏感的性质,我希望尝试不将资源写入系统 这可能吗 不,这不是马上可能的。您调用的EXE必须以不同的方式编写,而且无论

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

嵌入的资源是证书文件external exe is signtool。因此,由于敏感的性质,我希望尝试不将资源写入系统


这可能吗

不,这不是马上可能的。您调用的EXE必须以不同的方式编写,而且无论如何,要将句柄从一个进程传递到另一个进程是不容易的。

不,这不可能立即实现。您调用的EXE必须以不同的方式编写,而且无论如何,从一个进程向另一个进程传递句柄是不容易的。

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

否则-否


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

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

否则-否


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

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

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

使用管道发送数据是否可行?认为嵌入资源使其安全是一个很大的错误。使用管道发送数据是否可行?认为嵌入资源使其安全是一个很大的错误。