问题标签 [smartassembly]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
770 浏览

c# - 与 ILMerge 或 SmartAssembly 等工具合并时,内部类是否会变为私有类?

最近我发现了一些允许将 .Net 库合并到 Windows 应用程序中的工具。

现在真正的问题是图书馆的行为如何改变,

  1. 内部类是否仍然在库内部?或者它是否成为它所合并的应用程序的内部?
  2. 图书馆有可能发生故障吗?

扩展问题:

  1. 合并内部程序集时应该将其设置为私有,这样合并后的应用程序不能使用它,这不是更好吗?
0 投票
2 回答
708 浏览

vb.net - 混淆时出错

我们出于内部目的使用 vb.net 开发了项目,然后我们对其进行了混淆。它抛出错误,如下所述。

“未找到类型 'e' 上的公共成员 'Var1'。”</p>

代码:

一个表单(名为 FrmMain)从调用过程传递给参数“frm”到该子例程。Var1 等是这种形式的公共变量。

我们尝试过的混淆工具是——

  1. 智能装配 6

  2. PreEmptive Dotfuscator and Analytics CE(随 Visual Studio 2012 提供)

没有混淆 exe 工作正常。

在子例程中分配变量“Var1”时引发错误。如果代码行如下修改,则混淆的 exe 将正常工作。

FrmMain.Var1= Row("ChangesDbName").ToString

我们认为混淆缺少后期绑定并在一个小型示例项目中尝试了类似类型的代码。但这没有任何错误。我们附上了这个小代码。但由于其规模,我们无法上传原始项目。

我们如何追踪错误?

你可以在这里找到我的示例应用程序的源代码

0 投票
1 回答
656 浏览

.net - 如何在 Smart Assembly 中合并包含 PostSharp 方面的程序集

我在通过 SmartAssembly 将包含我的 PostSharp 方面的程序集合并到我的项目中时遇到问题,我想知道是否有人可以提供帮助。

主要组件相当简单,看起来像:-

MethodDebugLogging 方面工作正常,前提是它在同一个程序集中,但将其添加到自己的程序集中,然后通过 SmartAssembly 合并会导致:-

方面本身相当简单:-

在我看来,当我合并包含方面的程序集时,好像 Postsharp Distributable 的方面命名空间被剥离了,有没有人能够对此有所了解?

谢谢

保罗

0 投票
2 回答
523 浏览

obfuscation - 使用 SmartAssembly 自动记录错误并终止应用程序

我将SmartAssembly用于一般代码混淆以及应用程序中的错误报告。

如果我的应用程序遇到未处理的异常,我希望记录该异常,然后在没有任何用户交互的情况下终止应用程序。是否可以创建一个允许这样做的 SmartAssembly 项目?

我尝试在 SmartAssembly GUI 以及命令行中设置项目,但没有成功。下面是我尝试过的命令和参数,但到目前为止,我无法确定如何让它在没有用户输入的情况下终止应用程序并记录错误。

创建 SA 项目:

构建项目:

0 投票
1 回答
455 浏览

obfuscation - 在 SmartAssembly 中混淆可移植类库

我创建了具有以下配置的可移植类库: 在此处输入图像描述

在此之后,我将我的库添加到 SmartAssebly 6.8 中,并尝试构建,但出现以下错误: 在此处输入图像描述

如何避免这种情况?我看到 SA 找到了正确的 mscorelib.dll,但为什么它需要 System.Console?

0 投票
1 回答
3316 浏览

c# - 如何将 MahApps.Metro 捆绑到单个 exe 中

由于 MahApps.Metro,我很难使用 SmartAssembly 6(评估/试用)将我的 C# WPF 项目中的所有依赖项捆绑到一个 exe 中。

这个结论是在创建一个只有 MahApps.Metro 的完全空的项目时得出的,并且仍然无法捆绑它。

它抛出带有内部异常的异常System.IO.FileNotFoundException: Could not load file or assembly 'System.Windows.Interactivity, Version=4.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.

我花了一天半的时间试图解决这个问题,谷歌搜索错误,尝试我能找到的每一个建议,并在官方 MahApps.Metro 聊天中发布 ( https://gitter.im/MahApps/MahApps.Metro )。我尝试了各种变体,其中我删除了 System.Windows.Interactivity dll,添加了它,将它移动到另一个路径等。

使用来自 NuGet 的最新 MahApps.Metro 包和 .NET 4.5。当我从 Visual Studio 2012 运行该程序或从 Debug/Release 运行应用程序时,该程序可以工作。

有没有人遇到过这个问题?你是怎么解决的?问题是捆绑应用程序(SmartAssembly 6)还是 MahApps.Metro?您知道或认为是否有任何其他捆绑程序可以与 MahApps.Metro 一起使用?

0 投票
1 回答
899 浏览

c# - SmartAssembly 混淆公共类型

当我混淆这个表单并“调试”它时

输出是这样的:

姓名:Form1全名
:#Yab.#Zab


问题
为什么会FullName混淆?
Form1是公开的,所以我希望 SmartAssembly 忽略它。

额外的信息
Form1public partial,designer.cs

我的 SmartAssembly 设置是这样的:

0 投票
1 回答
1071 浏览

vb.net - .NET 混淆 [SmartAssembly]

只是一个关于 SmartAssembly 和 .NET 应用程序的快速问题。- 我目前正在试用该软件,它似乎是混淆代码,但 My.Settings 仍然以纯文本形式显示?

所以在混淆我的代码(使用 .NET 反射器)之前,我几乎可以看到所有内容。包括包含大量信息的 My.Settings 类,例如密码、ip、MySQL 连接字符串等。

所以我使用 RedGate 的 SmartAssembly 混淆了代码,果然所有的类/函数等都出现了随机符号,但是有几个项目(再次包括 My.Settings)保持不变?

SmartAssembly 屏幕截图 在此处输入图像描述

.NET 反射器中的混淆结果 在此处输入图像描述

0 投票
1 回答
1394 浏览

msbuild - 构建和发布之间的 MSBuild 自定义(混淆)步骤

我有一个构建在我的 CI 服务器上的 Web 应用程序(WebAPI Web 服务)。它使用 VS2013、发布到文件系统发布配置文件 (*.pubxml) 和来自 CI 服务器任务的以下命令构建和发布良好。

但是我还需要混淆软件,混淆器(Red Gate Smart Assembly)是通过放置在 csproj 文件中的以下 xml 调用的。

这似乎可以很好地构建和发布,但是在检查命令行输出时,我注意到发布发生在混淆之前。

显然混淆需要在构建之后发生,但在发布之前,这可能吗?

我尝试了一些方法,包括编辑 *.pub.xml 文件以通过“BuildDependsOn”节点调用混淆,但这会导致混淆在构建之前运行。

似乎不可能将构建与发布分离,我目前唯一的选择是构建它两次,第二个发布从第一个构建中提取混淆文件。

0 投票
0 回答
120 浏览

asp.net - 智能装配 - 是什么阻止了项目的工作?

我们有几个重用许多项目的 ASP.NET 应用程序。比方说

解决方案/应用 A 包含项目 p1、p2、p3,解决方案/应用 B 包含项目 p2、p3、p4

我们尝试混淆两个应用程序中的所有项目,但都不起作用。当我们在应用程序 A 中混淆 p1、p2 时,它就可以工作了。但是我们可以愉快地混淆应用 B 中的 p3 和 p4,这也可以。

所以,有时我们可以混淆 p3,有时我们不能。这是一个解决方案级别的问题,但我们的问题是为什么?为了获得更一致的混淆行为,应该避免或查看哪些事情?

谢谢

编辑 1

“是什么定义了项目不起作用?” 通常我会遇到某种 DLL 问题,暗示它不再正确理解某处的引用(通常是嵌入而不是合并和混淆的外部 DLL)。因此,它在正常启动时出错。