如果会发布ClickOnce版本,Dotfuscator如何对其进行模糊处理?
答案 0 :(得分:21)
您可以使用商业版Dotfuscator通过添加部署清单(“foo.application”)作为Dotfuscator项目的输入来自动模糊ClickOnce应用程序。 Dotfuscator允许您向ClickOnce应用程序中包含的程序集添加任何必要的排除项,并将创建包含模糊程序集的更新部署和应用程序清单。
Visual Studio中包含的免费Dotfuscator版本(包括Visual Studio 2010)没有自动混淆ClickOnce应用程序的功能。为了获得功能模糊的ClickOnce应用程序,您需要重新创建或更新ClickOnce清单,因为模糊处理会更改程序集的签名。
您可以使用mage.exe或mageui.exe(包含在Windows / .NET SDK中)更新ClickOnce清单。如果您打算使用mage.exe,您需要注意不能在ClickOnce选项中使用“使用.deploy文件扩展名”选项,因为它无法识别它。
假设您的ClickOnce应用程序名为“Foo”且版本为1.0.0.0,您需要遵循的过程是:
更新应用程序清单并重新签名:
mage.exe -Update“Application Files \ Foo_1_0_0_0 \ Foo.exe.manifest”-CertFile“c:\ Foo \ foo.pfx”-Password password
更新部署清单并将其重新签名:
mage.exe -Update Foo.application -AppManifest“Application Files \ Foo_1_0_0_0 \ Foo.exe.manifest”-CertFile“c:\ Foo \ foo.pfx”-Password password
您现在拥有使用模糊处理程序集的有效应用程序和部署清单。您还可以使用MageUI.exe工具完成相同的任务(并且它知道如何处理扩展名为.deploy的程序集)但是自动化并不容易。
答案 1 :(得分:3)
我有一个类似于Joe Kuemerle的解决方案,但是在发布过程之前。这适用于Visual Studio和MSBuild命令行中的发布。
将BeforePublish目标添加到项目文件中。
<ItemGroup>
<ClickOnceFiles Include="bin\Release\ClickOnce.*"/>
</ItemGroup>
<Target Name="BeforePublish">
<Exec Command="{path to dotfuscator}\dotfuscator.exe Dotfuscator.xml" />
<Exec Command="mage.exe -u bin\Release\ClickOnce.exe.manifest" />
<Exec Command="mage.exe -u bin\Release\ClickOnce.application -AppManifest bin\Release\ClickOnce.exe.manifest" />
<Copy SourceFiles="@(ClickOnceFiles)" DestinationFolder="obj\Release" OverwriteReadOnlyFiles="True" />
</Target>
ClickOnce文件为ClickOnce.application
,ClickOnce.exe
和ClickOnce.exe.manifest
。我的dotfuscator.xml
与项目文件位于同一文件夹中。关键是最后一个命令,将ClickOnce文件复制到obj
文件夹。
答案 2 :(得分:1)
是的,这些是兼容的技术。 ClickOnce只关注应用程序及其关联二进制文件到目标计算机的部署。 Dotfuscator会复制DLL和EXE文件。只要在发布应用程序之前运行Dotfuscator,它们就会一起工作。
答案 3 :(得分:1)
我不知道这是否只能在Visual Studio的更高版本中使用,但对我来说它完美无缺:
答案 4 :(得分:0)
如果您使用的是VS2010,则随附的Dotfuscator将对文件进行模糊处理,然后为您重新签名清单。 [编辑 - 除非你购买完整版本,否则这不是真的;它就像VS2008一样工作。]
如果您使用的是VS2008,则需要发布,然后对文件进行模糊处理,然后使用Mage或MageUI重新签名清单。
答案 5 :(得分:0)
深海混淆器使用clickonce
答案 6 :(得分:0)
Eziriz .NET Reactor具有出色的ClickOnce集成功能。
答案 7 :(得分:-1)
答案 8 :(得分:-1)
请参阅microsoft在线文档:Walkthrough: Manually Deploying a ClickOnce Application