我有一个.NET核心类库,它为netstandard1.6构建一个nuget包。我想在Azure函数中使用此库。但是当我尝试用
调用类库中的方法时,我收到了这个错误using System.Net.Http;
public static async Task<HttpResponseMessage> Run(HttpRequestMessage req, TraceWriter log)
{
return MyClassLib.Methode(req);
}
error CS1503: Argument 1: cannot convert from 'System.Net.Http.HttpRequestMessage [D:\home\data\Functions\packages\nuget\System.Net.Http\4.1.0\ref\net46\System.Net.Http.dll]' to 'System.Net.Http.HttpRequestMessage [D:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Net.Http\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Net.Http.dll]'
我猜D:\ home \ data \ Functions \ packages \ nuget \ System.Net.Http \ 4.1.0 \ ref \ net46 \ System.Net.Http.dll是来自&#34;依赖&#34;:{ &#34; NETStandard.Library&#34;:&#34; 1.6.0&#34; },
我在System.Net.Http中发现了类似的问题:https://github.com/dotnet/corefx/issues/9846 我读了一些关于:
的内容未修复为1.0的软件包示例 &#34; System.Net.Http&#34;:&#34; 4.1.0 - *&#34; https://docs.microsoft.com/en-us/dotnet/articles/core/tutorials/managing-package-dependency-versions
我应该降级到netstandard 1.2,因为System.Net.Http版本?但是我不能再支持net46了:https://github.com/dotnet/corefx/blob/master/Documentation/architecture/net-platform-standard.md
netstandard和net46之间是否存在不匹配?
答案 0 :(得分:1)
根据Azure Function的documentation,目前唯一受支持的框架似乎是net46
。
答案 1 :(得分:1)
是的,我有工作:)这就是我做的:
我添加了net46作为框架并移动了#34; NETStandard.Library&#34;:&#34; 1.6.0&#34;仅作为netstandard1.3的依赖项。因为System.Net.Http库位于&#34; NETStandard.Library&#34;。
MyClassLib:
"frameworks": {
"netstandard1.3": {
"imports": [ "netcoreapp1.0" ],
"dependencies": {
"NETStandard.Library": "1.6.0",
"System.Xml.XmlSerializer": "4.0.11",
"System.Xml.XmlDocument": "4.0.1",
"System.Xml.XDocument": "4.0.11"
}
},
"net46": {
"frameworkAssemblies": {
"System.Xml": "",
"System.Xml.Linq": "",
"System.Xml.Serialization": ""
}
}
添加已添加&#34;键入&#34;:&#34;构建&#34;在我所依赖的参考项目中。
"MyClassLib.Xml": {
"target": "project",
"type": "build"
},
如果有人写了一篇关于设置现代类库的最佳实践的完整教程,那会很好。
答案 2 :(得分:1)
目前,我们正式支持最高 Netstandard 1.3。 project.json
文件应继续使用net46
作为框架,并且将正确解析兼容包(我相信您已找到)。这个问题与.NET标准比Azure函数更相关,因此这将是一个很好的信息来源:https://docs.microsoft.com/en-us/dotnet/articles/standard/library
希望这有帮助!