【发布时间】:2010-08-28 16:51:46
【问题描述】:
我需要将一个自定义的、唯一的、静态的字符串注入我的基于 .NET 的 EXE 中。出于所有意图和目的,假设这是我的 PKI 私钥。
我对如何保护 C# 源代码中的私钥有一些想法,我的问题是如何获取我的 .CS 文件并基于它创建可执行文件?
【问题讨论】:
标签: c# .net compilation
我需要将一个自定义的、唯一的、静态的字符串注入我的基于 .NET 的 EXE 中。出于所有意图和目的,假设这是我的 PKI 私钥。
我对如何保护 C# 源代码中的私钥有一些想法,我的问题是如何获取我的 .CS 文件并基于它创建可执行文件?
【问题讨论】:
标签: c# .net compilation
看看CSharpCodeProvider,它本质上可以用于获取包含源代码的字符串并将其编译为程序集(EXE 或 DLL),或者如果需要,可以编译为内存中的程序集。
您还可以将codeDOM 用于代码生成方面。以'Generating Source Code and Compiling a Program from a CodeDOM Graph' 为起点。
【讨论】:
最简单的做法是调用 C# 编译器 csc。
例如:(来自上面链接的 msdn 页面)
csc /out:My.exe File.cs
将从名为 File.cs 的输入文件生成名为 My.exe 的可执行文件。
如果您要编译的可执行文件相当复杂,那么保持预编译并仅编译它在运行时调用方法以获取私钥的 DLL 可能会更简单,因为这将是一个更简单的命令传递给 csc 的行。
【讨论】: