希望有人能够提供帮助。
我有一系列最近已转换为.NetStandard 1.3 PCL的项目,这样做是为了让我公司的前端项目与新的移动项目共享一个通信层(Xamarin) )。
当我们的WPF项目中引用这些新的PCL时,一切运行正常,但在我们的ASP.net项目中引用它们会导致运行时异常。 Runtime Exception
我发现这是因为System.Runtime.dll在构建期间没有输出到项目的bin文件夹。
我已尝试直接在项目中引用System.Runtime Nuget包,但仍然没有。 经过一些调查/黑客攻击后,我发现如果我从Nuget包中复制(正确)的System.Runtime.dll并将其手动粘贴到bin中,一切都会加载。
然后我创建了一个post build事件,找到并将丢失的dll复制到bin中,但dll仍然从我们的部署包中排除。
在构建过程中是否有必要将dll输出到bin目录,就像我的其他依赖项一样?
我已经阅读了关于.NetStandard的文档并搜索了这个问题,但还没有设法找到任何帮助。
答案 0 :(得分:2)
我有同样的问题 - 我浪费了大约5个小时试图修补配置文件和NuGet包,只是为了让我感到懊恼System.Runtime.DLL
和System.Runtime.Extensions.DLL
不在bin
目录中。
如果我有任何突破,我会回信。
-
编辑:我不知道这是否会对你有所帮助,但我决定从第一个开始,重新创建PCL项目,然后重新添加到解决方案中。我将PCL设置为目标netstandard1.3
;这是PCL的project.json
:
{
"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应用程序。
希望这有帮助。