假设我有一堆命名空间:
SuperNamespace.namespace1
SuperNamespace.namespace2
SuperNamespace.namespace3
SuperNamespace.namespace4
...
SuperNamespace.namespaceN
每个命名空间都有自己的项目,每个项目创建自己的 dll 文件:
SuperNamespace.namespace1.dll
SuperNamespace.namespace2.dll
SuperNamespace.namespace3.dll
SuperNamespace.namespace4.dll
...
SuperNamespace.namespaceN.dll
我喜欢这种设计,因为它允许开发人员只使用他们需要的代码。有时拥有一堆 dll 可能会有点麻烦和烦人。我想创建一个包含所有命名空间的 SuperNamespace.dll。这样,开发人员可以选择使用他/她需要的东西,或者只使用大的 dll 文件,即包含所有库的 SuperNamespace.dll:
SuperNamespace.namespace1
SuperNamespace.namespace2
SuperNamespace.namespace3
SuperNamespace.namespace4
...
SuperNamespace.namespaceN
有没有办法在 C# Visual Studio 2010 解决方案中执行此操作?
最佳答案
我会简单地创建一个包含所有源的大型项目,除非有其他原因需要保留单独的程序集。
在以后的情况下,在按照 Mith Wheat 的建议采用 ILMerge 路线之前,我仍然会创建一个项目,其中除了小项目之外还包括所有内容。您可以使用 File->New project from source 轻松地从大量文件创建新项目(为此可能需要更高版本的 Visual Studio,绝对不是 Express 版本)。
在一个程序集 (DLL) 中可以使用多少个 C# 命名空间没有限制。您可以在 .Net 框架本身中找到许多示例 - 即许多 System.* 命名空间来自同一个程序集。
反之亦然 - 同一个命名空间可以来自多个程序集。
请注意,在编译代码中没有“命名空间”这样的东西 - 它成为类/结构/枚举名称的一部分。
关于c# - 创建一个包含许多命名空间的 dll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14494086/