.NET不使用DLL

时间:2010-06-15 06:23:30

标签: .net dll

我遇到了安全问题。银行不允许在项目中使用DLL。允许DataAccess 和/或使用外部服务(如电子邮件客户端mailchimp,icontct)需要什么样的结构。

以前有其他人遇到过这类问题吗?如果他们有应该如何构建项目(.net 3.5 +)。

谢谢, KJ

3 个答案:

答案 0 :(得分:15)

我相信你可以用ILMerge做到这一点。基本上,您将所有必需的DLL合并到主EXE中。

答案 1 :(得分:5)

你的意思是没有外部DLL可以使用吗? .NET基本上是一系列DLL(BCL)+运行时。但是,我可以想象这家银行希望能够检查您的应用程序代码,而无需使用.NET Reflector检查任何外部程序集。在那种情况下,即使使用ILMerge也无法解决问题,因为这不会使安全问题消失。它只会隐藏应用程序集中的那些外部程序集,并使所有内容更难检查。

我认为你唯一的选择是使用尽可能少的外部框架,如果你使用它们,让银行用.NET Reflector检查它们并准确显示你使用的配置。

说实话,我认为如果不使用外部库,很难提高效率。以日志框架为例。即使是最简单的应用程序也可以从日志框架中受益。

<小时/> 虽然这些类型的组织非常保守并不常见,但是不能使用任何外部dll是非常极端的。这些组织通常有一个他们信任的特定框架的白名单列表。你应该要求那份清单。他们应该有一个。

答案 2 :(得分:4)

您可能想澄清他们的要求。我怀疑当银行说“没有dll”时,他们的意思是“系统32中没有自定义dll”。如果这真的是他们的意思,你应该可以在app文件夹中使用dll(或者如果它是一个web应用程序 - 在其bin文件夹中)。

如果事实证明并非如此,并且他们确实禁止使用任何尚未预装在其系统上的DLL,那么您仍应该能够使用.Net框架。 CLR / BCL程序集从GAC加载,并预装在任何具有.Net的计算机上。

当然,如果他们的机器上没有安装.Net,那么: - )