首页 新闻 会员 周边

.Net Framework 4.61 Windows 桌面程序(.exe) 引用 .Net Standard 2.0 类库的问题

0
[已解决问题] 解决于 2018-07-05 11:10

.Net Standard 2.0 类库:

namespace ClassLibrary1
{
    public class Class1
    {
        public string Hello()
        {
            return "Hello!";
        }
    }
}

.Net Framework 4.61 Windows 桌面程序:

namespace WindowsFormsApp1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            ClassLibrary1.Class1 class1 = new ClassLibrary1.Class1();
            string str = class1.Hello();
            MessageBox.Show(str);
        }
    }
}

编译译后,出现一堆DLL:

数了一下,不包括 ClassLibrary1.dll 一共96个DLL。

奇怪的是,单独把 ClassLibrary1.dll 和 WindowsFormsApp1.exe 复制出来也是可以正常运行的:

既然有 ClassLibrary1.dll 和 WindowsFormsApp1.exe 就可以运行,为什么给我生成另外96个dll文件?复杂的程序应该需要其他dll吧?怎么判断需要哪些dll?编译器就不能智能的判断,需要哪些dll,就生成哪些dll吗?

问题补充:

补充一下,exe的目标框架也是.Net Framework 4.6,这96个DLL的版本也是 .Net Framework 4.6:

大豆男生的主页 大豆男生 | 小虾三级 | 园豆:608
提问于:2018-07-03 12:19
< >
分享
最佳答案
0

编译时无法完全判断,只有运行了才能完全判断。多了很多是因为需要standard需要一套接口,这东西是设计上是可以跑在其他平台的,比如core、xamarin。

奖励园豆:5
花飘水流兮 | 专家六级 |园豆:13560 | 2018-07-03 12:43
其他回答(1)
0

你这里的示例类库太简单了,根本没调用 .net standard 2.0 的 api

dudu | 园豆:30994 (高人七级) | 2018-07-03 13:57
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册