最近单位在开发一个新项目,在技术选型的时候,我们决定后台代码全部使用 dot net core来进行开发。
当项目引用公司之前的一个类库的时候,总是出现缺少XX组件的错误,所以我们检查了所有的类库,将需要的类库手动拷贝到了项目目录下才解决这个问题。
之后在项目回顾的时候,我集中对这个错误进行了调查,找到了微软官方的一篇文章。https://msdn.microsoft.com/en-us/magazine/mt842506.aspx
简单来说,netstandard的classlib是需要适用与所有.NET平台的程序,无论是.NET Core,.NET Framework,Silverlight还是Xamarin。
而netcoreapp只是适用与dot net core的程序。
由于我们的类库是使用的netstandard,而且引用了开源的第三方类库。这导致我们的程序引用这个类库的时候,类库不能自动识别我们使用的.NET的版本,所以就不能自动下载相应的第三方类库。
所以在编写netstandard的类库的时候,尽量不要引用任何第三方类库,不然在调试与发布的时候会遇到很多问题。