创建的NuGet Linux和Windows
问题描述:
我使用.NET 4.6.1在Windows上运行 和Linux应用程序使用.netcore 1.1创建的NuGet Linux和Windows
我希望做一个的NuGet可一个asp.net表单应用程序之间共享在两个应用程序之间共享。
我创建了一个.NET核心库和它非常细跟我的Linux应用程序 这里是它的project.jso
{
"version": "0.1",
"dependencies": {
"NETStandard.Library": "1.6.0",
"Newtonsoft.Json": "9.0.1",
"StackExchange.Redis": "1.2.0"
},
"frameworks": {
"netstandard1.4": {
"imports": "netcoreapp1.0"
}
}
}
我可以在我的NuGet包添加到Windows应用程序并构建它,并没有错误,但是当我要运行我收到的所有错误回报像应用程序:
无法加载文件或程序集“System.Diagnostics.DiagnosticSource, 版本= 4.0.0.0,文化=中立,公钥= cc7b13ffcd2ddd51
我使用.NET 4.6.1,所以我相信这是.NET的核心就是唠叨
我可以在here检查并确认这是一个.NET核心库。
我还在生产服务器中设置了.net库。但我仍然得到同样的错误。
我试过所有可能的组合和版本,我认为这是合乎逻辑的。并不知道如何解决它。
答
我不知道你为什么说你使用net 4.6.1
。因为您使用的是netstandard1.4
作为框架,请查看您的project.json
文件。
请尝试以下project.json
文件:
"buildOptions": {
"debugType": "portable",
"emitEntryPoint": true
},
"dependencies": {
"NETStandard.Library": "1.6.0",
"Newtonsoft.Json": "9.0.1",
"StackExchange.Redis": "1.2.0"
},
"frameworks": {
"netcoreapp1.1": {
"dependencies": {
"Microsoft.NETCore.App": {
"type": "platform",
"version": "1.1.0"
}
}
}
}
确保生产服务器已安装运行时和Microsoft.NETCore.App-1.1.0
在你的框架声明你不应该导入'netcoreapp1.0'。你也有两次相同的条目。 'netstandard1.x'的导入应该是'portable-net451 + win81'或类似的东西('portable-net45 + win8'或'portable-net46 + uap'或任何你希望作为最小API的东西 - 但记住,'portable-net45 + win8'是可用于.NET Core的最低PCL配置文件) – Tseng