我有一组多个程序集(一个程序集将用作API,它取决于其他程序集)。 我想将所有程序集合并为一个程序集,但要防止从外部可见除API之外的所有程序集。

然后,我将使用Xenocode混淆此程序集。 从我所看到的,用Xenocode内部化程序集是不可能的。

我已经从Microsoft看过ILMerge,但是无法确定它是否可以满足我的要求。 http://research.microsoft.com/~mbarnett/ILMerge.aspx

===============>>#1 票数:2

我已经使用了Microsoft的ILMerge将DLL内部化为一个组装的库。 有一个使用ILMerge的有用GUI,称为NuGenUnify。 你可以在这里找到它。

===============>>#2 票数:1

建议您查看MSDN上的InternalsVisibleTo属性。

您可以将所有程序集(API程序集除外)中的所有内容标记为internal而不是public ,然后将它们重新显示为您的API程序集。

完成此操作后,使用ILMerge应该会为您提供一个仅具有可见API类的程序集。

===============>>#3 票数:1

ILMerge存在一些问题 ,但是我认为,如果添加优化+合并+模糊处理,很可能会创建一个非常复杂的情况,而带来的好处却很少。

为什么不只有一个程序集,而只公开您的API?

如果您始终将它们作为单个程序集分发,则没有理由不只是那样编译它们。 您将从编译器优化中获得更多收益,并且编译起来也将更快。

===============>>#4 票数:1 已采纳

我知道Xenocode可以将程序集合并为一个,但是我不确定是否会将其他非主程序集内部化。

我发现ILMerge中的/ internalize开关可以“内部化”除主程序集以外的所有程序集。 非常有用!

  ask by Vincent translate from so

未解决问题?本站智能推荐: