WPF 使用.net Core3.1创建窗体程序时,在xaml中找不到基本数据类型的问题解决办法。

本文于2021年8月12日首发于博客园,欢迎阅读,欢迎转载,欢迎留言评论。

 

一,一直听说微软有个跨平台的框架,叫.net core,可以用C#开发。想着WPF练了这么久,也差不多了,何不拿这两者来练练手,说干

  就干。

       打开VS ,然后找到上面这个模板:

   创建基于.NET Core的WPF窗体应用程序。

 

二,各种技术,各种操作,玩的不亦乐乎,都可以实现。后来想在xaml中,定义一个静态的资源,资源类型是string。

  我记得.net的基本数据类型,都是在mscorlib中定义的。那就尝试在xaml中引入mscorlib,好吧,问题来了!!!

1,在xaml中引入mscorlib,如下图所示(贴了完整的图片,便于您更清晰的了解整个项目的构成):

   如您所见,VS的智能感知,找不到这个mscorlib的存在。再想想,是不是没有引入mscorlib类库?一通操作之后还是不行,报各种

  奇奇怪怪的错误。

 

 

  再想想,难道是自己记错了?做个对比,使用framework创建的WPF项目,在xaml中是可以正常使用string类型的呀!如下图所示:  

 

 

 2,既然可以用,就说明自己没有记错。难道是VS的问题?重启VS,不行,问题依然存在。重启电脑,不行,问题依然存在。

  后来对着电脑,看到xaml中,也有错误提示,把鼠标放在报错的代码上,VS会提示“显示可能的修补程序”,如下图所示:  

   唉,天啊,我找了两天的问题,就是没注意到这个地方。VS已经提示了,string这个类型,存在于System.Runtime,但是我却

  忽略了VS强大的提示功能。

 

3,后来就引入了Runtime,改成了下面这个样子:

 

 然后再次绑定,就成功的找到资源了。

 

 

 三,问题反思

  1,不知道什么情况,基于.net core的WPF程序的基本数据类型,都跑到了Runtime的下面,

       刚开始以为要手动添加引用,后来又想到可能是VS的问题,结果都不是。

  2,那么string从mscorlib跑到了Runtime下面,微软应该有个官方的文档声明,我相信一定有的,但是很可惜,我没找到,有知道的

  朋友,请帮忙给个链接,多谢。

  3,想挖的再深一些,string从mscorlib跑到了Runtime下面,微软是基于什么考虑呢?是.net core跨平台设计的原因,还是其他的原

  因,希望路过的大神可以指点一下。

 

 

 

电脑查看不方便?试试关注公众号吧,本博文已同步至微信公众号。

       

 

posted @ 2021-08-12 23:57  zch半缘修道半缘君  阅读(428)  评论(0)    收藏  举报