4

我有一个使用 .Net Framework 4 的 C# 2010 WinForms 应用程序。

我正在使用Eazfuscator.NET来混淆这个应用程序。如果我手动混淆可执行文件,一切正常。

当我尝试通过将项目拖到绿色部分来使程序在每个构建中混淆自己时,一切正常,这是输出:

保护项目 'Roster Manager.csproj'... 完成

受保护的项目将在 Release 配置中构建期间自动混淆
请重新启动 Visual Studio 以完成 Eazfuscator.NET 的安装

之后,我关闭 VS,重新启动它,清理解决方案,重新构建并运行它。该程序可以工作,但它没有被混淆,正如使用Reflector 7对其进行反编译所证明的那样。

我正在按照程序的要求在 Release 中构建它。

搜索网络并没有帮助,所以如果有人之前遇到过这个问题,可能会解决这个问题。

4

3 回答 3

3

Eazfuscator 将此行添加到项目的 PostBuildEvent(Word Wrapped 为易读性,但它是一行)。(右键单击项目 -> 属性 -> 构建事件。)

if /I "$(ConfigurationName)" == "Release" Eazfuscator.NET.exe "$(TargetPath)" 
--msbuild-project-path "$(ProjectPath)" --msbuild-project-configuration "$(ConfigurationName)" 
--msbuild-project-platform "$(PlatformName)" --msbuild-solution-path 
"$(SolutionPath)" -n --newline-flush -v 3.2

检查它是否存在以及您的发布配置是否真的称为“发布”。

于 2012-06-02T18:23:04.560 回答
3

终于设法修复它。似乎禁用用户帐户控制可以解决问题。

快速的 Google 搜索将提供有关如何执行此操作的更多详细信息。

于 2012-06-02T21:32:44.347 回答
0

如果您使用的是 TFS 等版本控制系统,.csproj 文件可能会被锁定。因此,您必须通过从文件属性中签出或取消选中“只读”框来解锁文件。

于 2015-03-31T13:20:47.617 回答