参考WPF的.NET Core 1.0库
我目前正在WPF中开发一个桌面应用程序,该应用程序使用.NET Core库来轻松移植到不同的平台。 但是,我似乎无法从WPF应用程序中引用.NET Core库。
我尝试了以下解决方案:
引用该项目:Visual Studio抱怨该项目不是.exe或.dll,尽管它是。
引用编译后的.dll:这真的很难看,但它起初似乎起作用。 智能感知是可以的,WPF项目编译得很好。 但是,只要我想使用.NET Core项目中的任何功能,就会抛出BadImageFormatException。
dotnet pack
该项目并引用.nupkg:安装一堆附加软件包,并在使用任何功能时引发BadImageFormatException。
从我可以收集的信息来看,这里有两种选择:
要么:
这是我的project.json:
{
"version": "1.0.0-*",
"buildOptions": {
"debugType": "portable",
"emitEntryPoint": true
},
"dependencies": {
"Microsoft.EntityFrameworkCore.Sqlite": "1.0.0",
"Microsoft.EntityFrameworkCore.Design": {
"version": "1.0.0-preview2-final",
"type": "build"
}
},
"frameworks": {
"netcoreapp1.0": {
"dependencies": {
"Microsoft.NETCore.App": {
"type": "platform",
"version": "1.0.0"
}
},
"imports": "dnxcore50"
},
"dnx451": {}
},
"tools": {
"Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final"
}
}
我尝试了dnx451
和net451
。 WPF项目也瞄准.net 4.5.1。 我在“.NET Core 1.0.1 VS 2015 Tooling Preview 2”中使用“Visual Studio 2015 Update 3”。
你的project.json
对库不正确。 库项目应该如下所示:
{
"dependencies": {
"Microsoft.EntityFrameworkCore.Sqlite": "1.0.0",
"Microsoft.EntityFrameworkCore.Design": {
"version": "1.0.0-preview2-final",
"type": "build"
}
},
"frameworks": {
"net451": { },
"netstandard1.3": {
"dependencies": {
"NETStandard.Library": "1.6.0"
}
}
},
"tools": {
"Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final"
}
}
运行dotnet pack
,将生成两个DLL:一个用于.NET 4.5.1和一个用于.NET Standard 1.3(或者您希望定位的任何一个netstandard
)。 .NET 4.5.1 DLL应该与您的WPF项目兼容。