当引用.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.DLLSystem.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应用程序中。

希望这会有所帮助。

+0

PS。我发现这个工具非常有帮助;您只能观察失败的程序集绑定,然后查看加载程序在处理时尝试的路径的确切列表:[link](http://www.hanselman.com/blog/BackToBasicsUsingFusionLogViewerToDebugObscureLoaderErrors.aspx) – Rimmel