使用.net core 2.0的坑

找个地方下载VS Installer,它会自动提示更新.
使用.net core 2.0的坑 - yww325 - 程序员
真是个坑!SDK的安装选项里如果有一个勾是选择VS2017 support就好了,需要客户去自己寻找自己的各个产品之间的依赖关系,或者只是在release notes里提一下,这是多么失败的产品经理的输出。安装界面上给个Visual Studio Integration选项很难做吗?

2. 新的.NetStandard类型的Library才是未来,它可以同时被桌面App和CoreApp使用。特别是如果用了.NetStandard2.0的LIbrary,因为nuget restore的时候可以有兼容模式,这种Library就可以引用一些没有满足.NetStandard的老的NugetPackage.

建立Library项目是不要选.NetCore下面的项目,因为它们只能用这些Framework,

使用.net core 2.0的坑 - yww325 - 程序员
结果就是这种dll不能被桌面项目直接使用。
1>C:\Program Files\dotnet\sdk\2.0.0\Sdks\Microsoft.NET.Sdk\build\Microsoft.NET.Sdk.Common.targets(87,5): error : Project ‘\Testlibrary\Testlibrary.csproj’ targets ‘.NETCoreApp,Version=v2.0’. It cannot be referenced by a project that targets ‘.NETFramework,Version=v4.7’.

而如果选了.Net Standard项目,则可以用以下framework列表,这样它就可以被桌面项目使用了。

使用.net core 2.0的坑 - yww325 - 程序员

但是这个.Net Standard Library引用的其他NugetPackage不会自动被输出到桌面项目里,运行时会报错文件找不到。所以Library用到的NugetPackage还要自己手动加。 这里感觉应该有个选项开关类似于copy to local这样的才行啊。

(还有一个workaround,就是打包成本地nugetPackage被桌面项目引用,这样才会自动加依赖的package,但是这样搞得内部的框架也必须要用pakcage引用而不能直接项目引用,太不方便了)