.net - 如何对 ClickOnce 使用混淆?

标签 .net clickonce obfuscation dotfuscator

如果有人会发布 ClickOnce版本,怎么会被Dotfuscator混淆?

最佳答案

您可以使用 Dotfuscator 的商业版本通过将部署 list (“foo.application”)添加为 Dotfuscator 项目的输入来自动混淆 ClickOnce 应用程序。 Dotfuscator 将允许您向 ClickOnce 应用程序中包含的程序集添加任何必要的排除项,并将创建包含混淆程序集的更新部署和应用程序 list 。

Visual Studio(包括 Visual Studio 2010)中包含的免费版 Dotfuscator 没有自动混淆 ClickOnce 应用程序的功能。为了获得功能正常的混淆 ClickOnce 应用程序,您需要重新创建或更新 ClickOnce list ,因为混淆会更改程序集的签名。

您可以使用mage.exemageui.exe (包含在 Windows/.NET SDK 中)以更新 ClickOnce list 。如果您要使用 mage.exe,您需要注意不能在 ClickOnce 选项中使用“使用 .deploy 文件扩展名”选项,因为它无法识别它。

假设您的 ClickOnce 应用程序名为“Foo”并且版本为 1.0.0.0,您将要遵循的过程是:

  • 将 ClickOnce 应用程序发布到磁盘上的目录
  • 运行 Dotfuscator CE 并从项目的 bin 目录中添加要混淆的程序集
  • 混淆程序集。默认情况下,经过混淆的程序集将放入名为“Dotfuscated”的子目录中。
  • 使用 sn.exe 退出您的混淆程序集(仅当您最初对其进行强命名时)
  • 在 ClickOnce publish\Application Files\Foo_1_0_0_0 目录
  • 中复制混淆的程序集。
  • 更新应用程序 list 并将其退出:

    mage.exe -Update "Application Files\Foo_1_0_0_0\Foo.exe.manifest"-CertFile "c:\Foo\foo.pfx"-Password 密码
  • 更新部署 list 并将其退出:

    mage.exe -Update Foo.application -AppManifest "Application Files\Foo_1_0_0_0\Foo.exe.manifest"-CertFile "c:\Foo\foo.pfx"-Password 密码

  • 您现在拥有使用混淆程序集的有效应用程序和部署 list 。您也可以使用 MageUI.exe 工具来完成相同的任务(它知道如何处理带有 .deploy 扩展名的程序集),但自动化并不容易。

    关于.net - 如何对 ClickOnce 使用混淆?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3416223/

    相关文章:

    c# - 使用两个不同的混淆器处理同一个 .NET 程序集

    c# - .NET 的短信库

    c# - 构造函数注入(inject)的实现具有未使用的 dll 依赖项

    java - 为什么使用 ProGuard 混淆会出现错误,但没有混淆就不会出现错误?

    JavaFX Proguard 混淆

    installation - ClickOnce setup.exe 不包含产品名称和错误的产品版本

    c# - 无法解决依赖项时抛出异常

    c# - LINQ 等于 - 它在幕后调用什么?

    vb.net - 每个新的 ClickOnce 部署版本都会丢失 VB.NET "My.Settings"

    .net - 如何在clickonce部署时修改配置文件?