.NET Core 2.0 WebAPI with .NET Framework 4.6( for COM interoperability)
The problem :
I want some .NET Core Web API in Kestrel mode that have access to some COM components ( such as Word.Application )
Solution:
( Theory : in order to have dll’s that works in .NET Framework application and in .NET Core, you should have .NET Standard 2.0 along .NET Framework 4.6.1 and .NET Core 2.0 ( see https://docs.microsoft.com/en-us/dotnet/standard/net-standard )
Step 1 : create the .NET 4.6.1 dll that access the COM object
Step 2: create the .NET WEB API application. Edit the .csproj file and replace the target framework with
<PropertyGroup>
<TargetFrameworks>net461</TargetFrameworks>
</PropertyGroup>
Save the .csproj
Step 3 ; Remove the Microsoft.AspNetCore.All metapackage and install yours . For me it was enough to install those 3:
install-package microsoft.aspnetcore.mvc
install-package Microsoft.AspNetCore
install-package Microsoft.AspNetCore.Diagnostics
( you may want to add CORS and/or others)
Step 4: run
dotnet restore
and
dotnet build
Step 5: Reference the dll that you have created in the Step 1 and reference from a controller action. Build again.
Step 6; Check that you have now an exe file in build / debug / net461. You can run this exe / deploy in IIS /
Leave a Reply