Qua*_*ngo 7 .net c# .net-standard-2.0
由于我需要导入一个面向.NET Standard 2的库,我已经将我的库升级到了.NET 4.7.1,正如我从MS视频中所理解的那样应该避免这个问题:https://www.youtube.com/watch? v = u67Eu_IgEMs
但是,添加.NET标准现在会导致数十个System.xxx引用,而不是对.NET Standard的单个引用(根据视频).
更糟糕的是,已经添加了几个引用但是底层文件似乎缺少生成警告,例如
我甚至在视频中重新创建了演示项目并得到了相同的结果 - 没有单一的.NET Standard引用,大量的DLL引用代替.
Warning The referenced component 'Microsoft.Win32.Primitives' could not be found.
Warning The referenced component 'System.IO.FileSystem' could not be found.
Warning The referenced component 'System.Security.Cryptography.X509Certificates' could not be found.
Warning The referenced component 'System.Globalization.Calendars' could not be found.
Warning The referenced component 'System.Security.Cryptography.Encoding' could not be found.
Warning The referenced component 'System.Security.Cryptography.Primitives' could not be found.
Warning The referenced component 'System.IO.Compression.ZipFile' could not be found.
Warning The referenced component 'System.Console' could not be found.
我已经尝试了NUGET update-package -reinstall并降级并升级到.NET标准2.0和2.0.1
我为自己的问题创建的答案是:
您的.NET Framework项目是否使用packages.config?如果是,请不要 引用.NET标准库.如果您引入.NET Standard,VS 2017中的package/reference/binding-redirect会严重破坏.试图修复它会导致更多问题(我浪费了几天时间).期望尽管存在,但仍然没有加载的程序集,大量的警告和破坏的应用程序.
如果你使用System.Net.Http,计划花几天时间在谷歌和GitHub上试图让它发挥作用.
如果您能够升级到packageReferences,这应该可以解决问题.但是,如果您的项目包含导入内容的软件包,JQuery或者Bootstrap意识到这些软件包不再有效,那么您将花费更多时间来修复这些引用并迁移到npm或bower修复TypeScript编译.不用了,谢谢.
理想情况下,您将使用2017 csproj格式,但这与WinForms,ASP.NET或Windows服务不兼容 - 如果您有一个遗留项目,那就太难了.
由于在.NET Framework 4.7.1上实现.NET Standard 2.0支持的一些问题,需要将其他文件部署到bin文件夹.
此问题在此处被描述为已知问题.
在.NET Framework 4.7.2上定位或运行时,复制到输出文件夹的文件数将为0.
还请确保您使用的是最新的Visual Studio(至少版本15.6.3),因为可以使用此方案所需的一些更改.