将共享库与 .NET Core 一起使用
Using Shared Libraries with .NET Core
我使用共享库编写了我的开源库 LINQ to Twitter,以最大限度地减少部署工件并处理特定于平台的功能。我想支持 .NET Core,我认为最快的方法是引用共享库。添加引用对话框没有显示共享库,所以我尝试了 project.json:
{
"version": "1.0.0-*",
"dependencies": {
"NETStandard.Library": "1.6.0",
"LinqToTwitter.Shared": "*",
"LinqToTwitter.Shared.net": "*"
},
"frameworks": {
"netstandard1.6": {
"imports": "dnxcore50"
}
}
}
我尝试了几个版本的组合,但没有得到任何结果。错误消息包含如下内容:
The dependency LinqToTwitter.Shared >= * could not be resolved.
接下来,我打开 *.xproj 并将以下导入粘贴到项目部分:
<Import Project="..\LinqToTwitter.Shared\LinqToTwitter.Shared.projitems"
Label="Shared" />
<Import
Project="..\LinqToTwitter.Shared.net\LinqToTwitter.Shared.net.projitems"
Label="Shared" />
这不会在 VS 中显示引用,在元数据中也不会显示任何内容,并且(接下来)无法从引用 .NET 核心应用程序的控制台应用程序中引用任何共享库类型。
如果库在同一个解决方案中,您可以使用 target:project
类似
的方式引用它
{
"version": "1.0.0-*",
"dependencies": {
"NETStandard.Library": "1.6.0",
"LinqToTwitter.Shared": {"target": "project"},
"LinqToTwitter.Shared.net": {"target": "project"}
},
"frameworks": {
"netstandard1.6": {
"imports": "dnxcore50"
}
}
}
好消息 - Visual Studio 2017 现在允许 .NET Core 库项目引用共享项目。
我使用共享库编写了我的开源库 LINQ to Twitter,以最大限度地减少部署工件并处理特定于平台的功能。我想支持 .NET Core,我认为最快的方法是引用共享库。添加引用对话框没有显示共享库,所以我尝试了 project.json:
{
"version": "1.0.0-*",
"dependencies": {
"NETStandard.Library": "1.6.0",
"LinqToTwitter.Shared": "*",
"LinqToTwitter.Shared.net": "*"
},
"frameworks": {
"netstandard1.6": {
"imports": "dnxcore50"
}
}
}
我尝试了几个版本的组合,但没有得到任何结果。错误消息包含如下内容:
The dependency LinqToTwitter.Shared >= * could not be resolved.
接下来,我打开 *.xproj 并将以下导入粘贴到项目部分:
<Import Project="..\LinqToTwitter.Shared\LinqToTwitter.Shared.projitems"
Label="Shared" />
<Import
Project="..\LinqToTwitter.Shared.net\LinqToTwitter.Shared.net.projitems"
Label="Shared" />
这不会在 VS 中显示引用,在元数据中也不会显示任何内容,并且(接下来)无法从引用 .NET 核心应用程序的控制台应用程序中引用任何共享库类型。
如果库在同一个解决方案中,您可以使用 target:project
类似
{
"version": "1.0.0-*",
"dependencies": {
"NETStandard.Library": "1.6.0",
"LinqToTwitter.Shared": {"target": "project"},
"LinqToTwitter.Shared.net": {"target": "project"}
},
"frameworks": {
"netstandard1.6": {
"imports": "dnxcore50"
}
}
}
好消息 - Visual Studio 2017 现在允许 .NET Core 库项目引用共享项目。