4

我在 C# 中有一个仅引用程序集的类库项目System;它编译得很好,但显然不能单独使用,因为它只是一个类库。

使用该库的项目有更多的引用程序集。特别是,它们似乎都包括System.CoreMicrosoft.CSharp等。所有项目现在都运行良好,但我不禁想知道它是否只是因为库所需的 DLL 是封闭项目的子集,或者因为 .NET 程序集在 GAC 中并且在需要时神奇地找到了传递。

假设一个 hello world 程序(即没有 linq、没有 xml、没有配置等),最小可接受的参考集是多少?

图书馆项目是否也应该System.Core明确Microsoft.CSharp引用?这些听起来很重要。

=====

EDIT:Visual Studio 中的类库项目模板始终包含System.Core并且Microsoft.CSharp默认情况下,即使删除它们似乎总是可以的。这就是为什么我想知道它们是否被隐式引用。

4

2 回答 2

2

对于仅限于基本输入和输出操作的小型控制台应用程序,您需要的最小库是mscorlib.dll(并且它是必须具有的参考)。基本 IO 操作和线程。

除此之外,mscorlib.dll 拥有 .Net Framework 最基本的东西(实现)。Reflector您应该使用类似or的应用程序查看 mscorlib.dll dotPeek

于 2013-05-15T11:10:48.540 回答
2

假设一个 hello world 程序,最小可接受的参考集是多少

这个:

// HelloWorld.cs
namespace HelloWorld
{
    class Program
    {
        static void Main()
        {
            System.Console.WriteLine("Hello, world!");
        }
    }
}

将仅依赖于 mscorlib。以这种方式编译它:

csc.exe HelloWorld.cs

于 2013-05-15T11:13:15.453 回答