2

假设我有一堆命名空间:

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 解决方案中做到这一点?

4

1 回答 1

2

我会简单地创建一个包含所有源的大型项目,除非有其他原因需要保留单独的程序集。

在以后的情况下,我仍然会创建一个项目,其中包括除了小项目之外的所有内容,然后按照 Mith Wheat 的建议走 ILMerge 路线。您可以使用 File->New project from source 轻松地从大量文件中创建新项目(可能需要更高版本的 Visual Studio,绝对不是 Express 版本)。

在一个程序集 (DLL) 中可以使用多少个 C# 命名空间没有限制。您可以在 .Net 框架本身中找到许多示例 - 即许多 System.* 命名空间来自同一个程序集。

反之亦然 - 相同的命名空间可以来自多个程序集。

请注意,在编译代码中没有“命名空间”之类的东西 - 它成为类/结构/枚举名称的一部分。

于 2013-01-24T05:02:46.127 回答