0

我正在编写应用程序,它快结束了,我想使用智能汇编对我的代码应用混淆,如果可能的话也签名......

问题是我的应用程序是多部分的,更重要的是它的一部分是基于服务的,它应该使用 MSI 安装项目安装才能工作,我不能先构建,然后打包它,所以我需要做一个构建时间混淆的东西,所以所有的类库项目,以及服务和用户界面都在构建时执行混淆,一旦它们准备好,MSI可以打包它们......它应该的方式,所以每个人都会很开心......

我听说有允许智能组装在构建时执行此操作的配置,但我不知道该怎么做:-s

4

2 回答 2

1

从技术上讲,必须在 SmartAssembly 处理它之前构建程序集——它与中间语言代码一起使用,因此在编译之后才能处理。

但是,我不认为这是一个问题 - 最终您只希望在构建输出被打包到 MSI 之前对其进行混淆。因此,如果您希望这自动发生,您可以编辑 vsproj 以包含 SmartAssembly 构建后步骤: http ://www.red-gate.com/supportcenter/Content/SmartAssembly/help/6.7/SA_UsingSmartAssemblyWithMSBuild

如果您使用 MS 设置和部署项目来构建 MSI,则需要进行的重要更改是将 SmartAssembly 输入和输出指向 /obj 文件夹,因为出于某种奇怪的原因,Microsoft 从 /obj 获取程序集,而不是更传统的 /bin。

于 2012-09-18T16:27:55.143 回答
1

我找到了解决这个问题的方法,“Brian Donahue”在回答中说:

如果您使用 MS 安装和部署项目来构建 MSI,那么重要的更改是将您的 SmartAssembly 输入和输出指向 /obj 文件夹,因为出于某种奇怪的原因,Microsoft 正在从 /obj 中获取程序集,而不是更传统的 /bin

解决方案是您使用文本编辑器打开设置(.vdproj)文件 - 我使用 Notepad++ - 然后转到文件末尾,直到在此节点中找到一个名为“ ProjectOutput ”的节点,您将找到一个名为“ SourcePath ”在此属性中,您将找到项目输出的路径(.exe.dll

现在将此路径更改为指向“bin”目录而不是“obj”目录,并且不要忘记将“ x86 ”或“ x64 ”目录更改为“ Release ”或“ Debug ”目录。

于 2013-09-24T23:29:39.500 回答