Netstandard 无法从 nuget System.Net.Http 转换为 GAC 版本
Netstandard Cannot convert from nuget System.Net.Http to GAC version
我有一个 .NET 核心 class 库,它为 netstandard1.6 构建了一个 nuget 包。我想在 Azure 函数中使用这个库。但是当我尝试使用
调用 class 库中的方法时出现此错误
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.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.1.0\ref\net46\System.Net.Http.dll 是来自 "dependencies" 的 dll:{
"NETStandard.Library":“1.6.0”
},
我在 System.Net.Http 中发现了类似的问题:https://github.com/dotnet/corefx/issues/9846
我读了一些关于:
Examples of packages that are NOT fixed to 1.0
"System.Net.Http":"4.1.0-*"
https://docs.microsoft.com/en-us/dotnet/articles/core/tutorials/managing-package-dependency-versions
我应该因为 System.Net.Http 版本而降级到 netstandard 1.2 吗?但是我不能再支持 net46 了:https://github.com/dotnet/corefx/blob/master/Documentation/architecture/net-platform-standard.md
netstandard 和 net46 不匹配吗?
根据 Azure Function 的 documentation,目前似乎唯一支持的框架是 net46
。
是的,我有它的工作:)这就是我所做的:
我将 net46 添加为框架并移动 "NETStandard.Library": "1.6.0" 仅作为 netstandard1.3 的依赖项。因为 System.Net.Http 库在 "NETStandard.Library".
里面
我的类库:
"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": ""
}
}
添加 "type": "build" 在我依赖的参考项目中。
"MyClassLib.Xml": {
"target": "project",
"type": "build"
},
如果有人写了一个完整的教程,其中包含设置现代 class 库的最佳实践,那就太好了。
目前,我们正式支持最高 Netstandard 1.3。 project.json
文件应该继续使用 net46
作为框架和兼容的包将被正确解析(我相信你已经找到了)。这个问题与 .NET Standard 比 Azure Functions 更相关,因此这将是一个很好的信息来源:https://docs.microsoft.com/en-us/dotnet/articles/standard/library
希望对您有所帮助!
我有一个 .NET 核心 class 库,它为 netstandard1.6 构建了一个 nuget 包。我想在 Azure 函数中使用这个库。但是当我尝试使用
调用 class 库中的方法时出现此错误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.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.1.0\ref\net46\System.Net.Http.dll 是来自 "dependencies" 的 dll:{ "NETStandard.Library":“1.6.0” },
我在 System.Net.Http 中发现了类似的问题:https://github.com/dotnet/corefx/issues/9846 我读了一些关于:
Examples of packages that are NOT fixed to 1.0 "System.Net.Http":"4.1.0-*" https://docs.microsoft.com/en-us/dotnet/articles/core/tutorials/managing-package-dependency-versions
我应该因为 System.Net.Http 版本而降级到 netstandard 1.2 吗?但是我不能再支持 net46 了:https://github.com/dotnet/corefx/blob/master/Documentation/architecture/net-platform-standard.md
netstandard 和 net46 不匹配吗?
根据 Azure Function 的 documentation,目前似乎唯一支持的框架是 net46
。
是的,我有它的工作:)这就是我所做的:
我将 net46 添加为框架并移动 "NETStandard.Library": "1.6.0" 仅作为 netstandard1.3 的依赖项。因为 System.Net.Http 库在 "NETStandard.Library".
里面我的类库:
"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": ""
}
}
添加 "type": "build" 在我依赖的参考项目中。
"MyClassLib.Xml": {
"target": "project",
"type": "build"
},
如果有人写了一个完整的教程,其中包含设置现代 class 库的最佳实践,那就太好了。
目前,我们正式支持最高 Netstandard 1.3。 project.json
文件应该继续使用 net46
作为框架和兼容的包将被正确解析(我相信你已经找到了)。这个问题与 .NET Standard 比 Azure Functions 更相关,因此这将是一个很好的信息来源:https://docs.microsoft.com/en-us/dotnet/articles/standard/library
希望对您有所帮助!