簡體   English   中英

內化.NET Assembly中的類和方法

[英]Internalize Class and Methods in .NET Assembly

我有一組多個程序集(一個程序集將用作API,它取決於其他程序集)。 我想將所有程序集合並為一個程序集,但要防止從外部可見除API之外的所有程序集。

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

我已經從Microsoft看過ILMerge,但是無法確定它是否可以滿足我的要求。 http://research.microsoft.com/~mbarnett/ILMerge.aspx

我已經使用了Microsoft的ILMerge將DLL內部化為一個組裝的庫。 有一個使用ILMerge的有用GUI,稱為NuGenUnify。 你可以在這里找到它。

建議您查看MSDN上的InternalsVisibleTo屬性。

您可以將所有程序集(API程序集除外)中的所有內容標記為internal而不是public ,然后將它們重新顯示為您的API程序集。

完成此操作后,使用ILMerge應該會為您提供一個僅具有可見API類的程序集。

ILMerge存在一些問題 ,但是我認為,如果添加優化+合並+模糊處理,很可能會創建一個非常復雜的情況,而帶來的好處卻很少。

為什么不只有一個程序集,而只公開您的API?

如果您始終將它們作為單個程序集分發,則沒有理由不只是那樣編譯它們。 您將從編譯器優化中獲得更多收益,並且編譯起來也將更快。

我知道Xenocode可以將程序集合並為一個,但是我不確定是否會將其他非主程序集內部化。

我發現ILMerge中的/ internalize開關可以“內部化”除主程序集以外的所有程序集。 非常有用!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM