为什么C#没有C++风格的静态库?

12 c# c++ static-libraries

最近我一直在研究几个共享一些常用代码的.NET应用程序.代码中引入了一些接口来抽象出用于单元测试的I/O调用.

我希望应用程序是独立的EXE,没有外部依赖性.这似乎是静态库的完美用例.想想第三方控制供应商也可以从这个模型中受益.

我错过了一些隐藏的静态库吗?

有没有理由让C#设计师把它们排除在外?

编辑:我知道ILMerge,但它不提供与静态库相同的便利.

Han*_*ant 11

.NET确实支持静态库的道德等价物.它被称为netmodule(文件扩展名通常是.netmodule).在这篇博文中了解更多相关信息.请注意,Visual Studio构建工具链不能很好地支持它.我认为扩展方法也是一个问题.ILMerge是完成这项工作的更好工具.