installation - Dotfuscator - 是否混淆 .msi 文件?
问题描述
我有一个带有 .msi 输出的 .Net 解决方案。运行混淆(使用Dotfuscate
)会引发以下错误:
PE Signature not found. Is \Release\Output.msi a PE file?
想知道Dotfuscate
不支持。msi
文件混淆。
谢谢你的帮助 !
解决方案
Dotfuscator 不会混淆.msi
文件,只会混淆 .NET 程序集(.dll
以及.exe
使用 C#、F# 或 Visual Basic .NET 制作的文件)。如果您以 .NET 程序集交付 .NET 程序集.msi
,则需要使用 Dotfuscator 保护它们,然后再将它们添加到您的.msi
.
最简单的方法是将 Dotfuscator 集成到应用程序的.exe
项目中。然后,当您在 Visual Studio 或 MSBuild 中构建项目时,Dotfuscator 将保护其中的程序集bin\Release
(包括.exe
集成项目以及.dll
解决方案中其他项目的程序集),然后您.msi
可以正常获取这些程序集。这也允许 Dotfuscator 与其他打包格式(如 Xamarin)一起使用,因为此集成在项目编译之后但在打包之前运行。
(免责声明:我为 Dotfuscator 团队工作,并且作为我工作的一部分回答。)
推荐阅读
- api - TFS API - minTime 过滤器不起作用
- angular - Angular 2:“可观察”类型上不存在属性“地图”
' - excel-formula - 用于分层数据分析的 Excel 公式 Excel 2010
- python - 如何在python中删除图像上的网格线?
- c# - 如何在 C# 中发现知道 PID 和 VID 的虚拟 COM 端口名称
- java - JSON 在屏幕中读取和打印
- android - 为 android 应用程序创建实时用户存在检测器服务器端
- forms - Rails 5.2.0 - 脚手架 `form_with` 默认包含 `local: true`
- java - 我的应用程序跳过 AsyncTask.execute() 并崩溃
- android - 在 Worker 中使用 dagger 2 (如 DbManager)注入对象,在 doWork() 方法中进行 db 操作,#WorkerManager