仅将托管C#类集合的引用组件自动链接到dll或应用程序
一个开发合作伙伴最近进行的不可协商的平台迁移迫使我使用Visual Studio 2008为Windows CE 6.0进行.NET 3.5 Compact Framework开发 在其他环境中,我习惯于将“功能”类/模块等的大型框架聚合到一个静态库中,与较小的“产品配置”代码体链接,以便生成各种应用程序和/或动态库映像,其中只包含实际引用的组件 虽然静态链接是偶然的,但对未使用代码的删减是至关重要的:它不仅满足了占地面积问题,而且满足了市场中的安全要求,在这种市场中,客户会看到未使用的代码,特别是那些如果作为不可接受的漏洞执行可能会增加功能的代码 不幸的是,这似乎与.NET worldview(更不用说VS2008提供的解决方案和项目模板)不一致,后者似乎倾向于构建DLL(程序集、类库、NetModule等),以便通过整体部署重用。事实上,支持这种方法的信息如此之多,以至于我在试图找到任何相反的东西时很快变得沮丧 因此,我能否实现与静态链接工件等效的死代码分割效果,其中对组件的源代码引用,加上对其聚合集合的产品或解决方案引用,足以确保部署中包含所有且仅包含所需的组件 例如,像这样的工具是否可以在不需要大量手动干预或维护开销(例如,除客户端代码或框架库构建配置外的组件列表)的情况下完成此任务,并且仅向面临更陡峭学习曲线的其他开发人员进行有限的解释;或者更好的是,VS2008中是否已经存在一些方法 --仅将托管C#类集合的引用组件自动链接到dll或应用程序,c#,visual-studio-2008,build-process,C#,Visual Studio 2008,Build Process,一个开发合作伙伴最近进行的不可协商的平台迁移迫使我使用Visual Studio 2008为Windows CE 6.0进行.NET 3.5 Compact Framework开发 在其他环境中,我习惯于将“功能”类/模块等的大型框架聚合到一个静态库中,与较小的“产品配置”代码体链接,以便生成各种应用程序和/或动态库映像,其中只包含实际引用的组件 虽然静态链接是偶然的,但对未使用代码的删减是至关重要的:它不仅满足了占地面积问题,而且满足了市场中的安全要求,在这种市场中,客户会看到未使用的代码,特
egr是的,这样的工具存在,但在.NET中没有广泛使用 我以前见过的一个工具是。我没有使用过这个工具,所以除了他们网站上的内容外,我无法评论它的优点:
Salamander.NET链接器和迷你部署工具允许您将.NET程序集链接到一个文件中,并在不安装整个Microsoft.NET Framework的情况下部署应用程序。链接器仅将所需的类和方法选择性地链接到MSIL代码,并且它能够链接到Microsoft.NET framework类库。以下是我根据其他研究以及收到的评论和回答得出的结论:
egr希望,该工具对.NET本身进行调整的能力同样适用于自主开发的框架,但仍将允许我们使用内置于合作伙伴基础产品中的.NET CF发行版。谢天谢地,在我们的一些产品中,我们的客户不希望出现的未使用的功能纯粹是我们自己的,而不是.NET本身的一部分。看看吧,不幸的是,它的价格太高了,不能不引起我们首席财务官的激烈争论。也许还有其他更便宜的链接器。我还没有找到它,因为我目前不需要它。祝你好运这不是我的“C++视图”:客户需要一个没有未使用部件的封闭系统。它们可能会运行代码覆盖率,如果攻击者强制引用,则存在可能会被jit的不需要的功能代码,这是一个足以被拒绝的漏洞。还将查看分离和省略程序集