最近重装了VS2019,在打开原来做的基于.net framewor4.8的项目时,
提示“要求安装.net framewor4.8、或者使用.net framewor4.6.1打开项目、或者先不打开”,选择安装4.8,会弹出一网页让下载,
然后再选择先不打开后,显示目录“已卸载”,原谅我忘了截图。
然后查看了一下安装时的选项,都是默认选的大类,按单个组件查看,发现选了.net framewor4.8SDk
试着勾选4.8后安装,再次打开项目,还是不行。VS里自带的目标包没作用,安装完后控制面板里没显示。于是用第一次打开的网页下载,下载开发包后安装,再次打开后OK了!貌似开发包就是目标包,安装前后在控制面板里显示为:
所以,这里边问题就来了,SDK和目标包、还有一个所谓的开发包,有什么区别?按理说开发包似乎就是SDK,但是我装了SDK却不能用、装了开发包后可以用,说明不一样。
注:下载开发包的时候还有一个同名文件的语言包,测试未安装是智能提示是英文的,安装后变成中文的。
.NET Framework 4.8 目标包
的英文名称是Targeting Pack
:
A targeting pack lets your app target a specific version of the .NET Framework when developing in Visual Studio and some other development environments. A developer pack includes a specific version of the .NET Framework and its accompanying SDK along with its corresponding targeting pack.
详见微软官方文档 Installation choices
翻译了一下:在 Visual Studio 和其他一些开发环境中开发时,目标包允许您的应用针对 .NET 框架的特定版本。开发人员包包括 .NET 框架及其附带的 SDK 的特定版本及其相应的目标包。
——似乎有点明白了,还是有点疑惑,SDK和目标包有什么区别?
@黑衫老腰: SDK
是你用的开发工具,目标包
是你用 SDK 开发的应用程序所用到的包
@dudu: 是不是这么理解:
目标包是引用的dll文件等程序集,如果要调试运行必须有。
SDK是开发工具,只需要一个编辑器,就可以写源代码然后编译成程序集。那么如果没有目标包,能编译成功吗?
VS是一个IDE,是不是相当于一个编辑器,然后把两者连接了一下,再加上智能提示功能?