1

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

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

这可能吗?

4

3 回答 3

1

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

于 2012-02-06T17:51:40.197 回答
0

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

否则 - 不。

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

于 2012-02-06T18:25:11.207 回答
0

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

于 2012-02-06T18:37:31.880 回答