2014-07-17 45 views
0

我會直接跳到這個問題。我有以下情形:從外部使用保護DLL

  1. 項目A - >產生的.dll一個
  2. 項目B - >引用的.dll A和生產的.dll乙

的事情是,我創建的.dll B重新編寫.dll A中的一些類以減少第三方使用的功能。但是當項目B編譯時,整個.dll將會在那裏。

那麼,有沒有什麼辦法可以「鎖定」/「隱藏」.dll A?

+0

看起來像你需要ILMerge.http://research.microsoft.com/en-us/people/mbarnett/ilmerge.aspx – Rangesh

+0

ILMerge只是從更多的創建一個DLL,不是嗎?它並不妨礙訪問它的功能。 –

+0

@JanBarta:是將dllA + dllB合併爲一個DLL。並且猜測dllA和dllB將被隱藏 – Rangesh

回答

0

你不應該用不同的方法嗎?用更小的功能子集創建dll,然後用其他dll擴展它?問題是,一旦你創建了你的DLL,它可以被訪問,例如使用反射,即使你使用「內部」。

+0

我不能改變項目A的整個實現只是爲了這個小部分:) –

+0

也許看看[this](http://msdn.microsoft.com/en-us/library/system.runtime.compilerservices.internalsvisibletoattribute.aspx )。你可以在dll中指定只從dll中調用。如果你簽名它,我認爲它可以提供幫助。 –