问题
I have a previously generated DLL with some enterprise code that I would like to reuse in a .NETCore project. However, since the original DLL was created and compiled using .NETFramework 4.5 I am not able to directly add the dll as a reference.
I created a nuget package containing my dll as shown here. After that, I am able to add such package to the project. However, I am having the following error:
"The dependency MyAssembly.dll does not support framework .NETCoreApp,Version=v1.0"
I have already tried referencing .NETCore.Portable.Compatibility but I dont think that is the right way to go. How can I use this dll on my code? This is what my project.json looks like after adding the Nuget package.
{
"version": "1.0.0-*",
"dependencies": {
"MyAssembly.dll": "1.0.0",
"Microsoft.EntityFrameworkCore": "1.0.0",
"Microsoft.EntityFrameworkCore.SqlServer": "1.0.0",
"Microsoft.NETCore.Portable.Compatibility": "1.0.1",
"NETStandard.Library": "1.6.0"
},
"frameworks": {
"netcoreapp1.0": {
"imports": [ "dnxcore50", "portable-net451+win8" ]
}
}
}
回答1:
You can add more than one frameworks in project json file in your .netcore class library. By default you will have .net core framework. Just add comma and add your required .net framework.
{
"version": "1.0.0-*",
"frameworks": {
"netstandard1.6": {
"dependencies": {
"NETStandard.Library": "1.6.0"
},
"imports": "dnxcore50"
},
"net45": {
"dependencies": {},
"imports": "net452"
}
}
}
回答2:
If your .NET 4.5 dll is not compiled as PCL, you cannot reference it from project that targets netcoreapp1.0. It should be re-compiled as portable library or target netstandard API set.
来源:https://stackoverflow.com/questions/38731567/add-netframework-4-5-dll-to-netcore-project