c# - 创建一个包含许多命名空间的 dll

标签 c# visual-studio-2010 dll

假设我有一堆命名空间:

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/

相关文章:

c# - 如何为 XDocument 设置默认的 XML 命名空间

c# - 内存缓存通用列表删除而不影响缓存列表

visual-studio-2010 - nmake/VC++ 2010 : Compile without MSVCR100. dll 依赖

c++ - 不能使用我自己的使用 SFML 的 DLL

windows - 通过在 Go 中调用 Windows DLL 发送 ARP 请求不起作用

c# - 不使用 TaskCreationOptions.LongRunning 时的奇怪行为

c# - 在 LINQ 查询中使用导航属性会导致关系多重性等问题

c++ - 如何解决 vs2010 中的 "C4653"警告?

asp.net - 在 Visual Studio 2010 中更改 'switch to markup' 的快捷方式

Python ctypes.WinDLL 错误,找不到 _dlopen(self._name, mode)