当引用.net标准类库时找不到System.Runtime程序集
希望有人能够提供帮助。当引用.net标准类库时找不到System.Runtime程序集
我收集了近期已转换成.NetStandard 1.3 PCL的项目,这是为了让我公司的前端项目与新移动项目(Xamarin)共享通信层。
当我们的WPF项目中引用这些新的PCL时,一切运行正常,但在我们的ASP.net项目中引用它们会导致运行时异常。 Runtime Exception
我发现这是由于System.Runtime.dll没有在构建过程中输出到项目的bin文件夹。
我试过直接在项目中引用System.Runtime的Nuget包,但仍然没有。 经过一些调查/黑客攻击后,我发现如果我从Nuget包复制(正确的)System.Runtime.dll并手动将其粘贴到bin中,则会加载所有内容。
因此,我创建了一个后期构建事件,它发现并复制了丢失的dll到bin,但dll仍然从我们的部署包中排除。
有没有办法在构建过程中将所需的dll输出到bin目录,就像我的其他依赖项一样?
我已阅读.NetStandard和谷歌搜索这个问题的文档,但没有设法找到任何有帮助的。
我有完全相同的问题 - 我浪费了大约5个小时试图用配置文件和包裹的NuGet鼓捣,才意识到令我懊恼的是System.Runtime.DLL
和System.Runtime.Extensions.DLL
是不存在bin
目录。
如果我有任何突破,我会回信。
- 编辑:我不知道这是否会对您有所帮助,但我决定从广场开始,然后重新创建PCL项目,然后重新添加到解决方案中。我将PCL设置为netstandard1.3
;这里是我project.json
为PCL:
{
"name": "<redacted>",
"version": "1.0.0-*",
"supports": {
"net46.app": {}
},
"dependencies": {
"Microsoft.NETCore.Portable.Compatibility": "1.0.1",
"NETStandard.Library": "1.6.0",
"Newtonsoft.Json": "9.0.1"
},
"frameworks": {
"netstandard1.3": {
"imports": "portable-net46+win8"
}
}
}
这样做,然后通过IDE添加引用之后,我没有得到的装配误差不再。我也可以将这个PCL链接到我的.NET Core 1.0应用程序中。
希望这会有所帮助。
PS。我发现这个工具非常有帮助;您只能观察失败的程序集绑定,然后查看加载程序在处理时尝试的路径的确切列表:[link](http://www.hanselman.com/blog/BackToBasicsUsingFusionLogViewerToDebugObscureLoaderErrors.aspx) – Rimmel