We just published a multi-platform NuGet package that includes a .NET Framework 4.5 and a .NET Core 3.1 assembly version. The functionality of the .NET Core version is exactly the same like the full framework version and can be easily used to port your projects to .NET Core 3.1.

Why Is .NET 3.1 Supported and Not .NET 2.1?

Word processing is a complex task and requires some high-performance modules which are written in C++. Finally, the .NET Core 3.1 runtime added support for IJW C++/CLI on Windows that makes .NET Core 3.1 a usable target for TX Text Control applications running on Windows.

Additionally, the official package System.Drawing.Common from Microsoft provides access to GDI+ graphics functionality which is required in TX Text Control applications.

Creating the Application

The following tutorial shows how to create an ASP.NET Core 3.1 Web Application that can be deployed to Windows machines.

  1. In Visual Studio 2019 (> 16.04), create a new project and select ASP.NET Core Web Application as the project template.

    .NET Core

  2. Select a project name (myDotnetCoreApp in this sample), location and solution name in the next dialog and confirm with Create.

    .NET Core

  3. In the last dialog, select .NET Core and ASP.NET Core 3.1 as the project target, select Web Application (Model-View-Controller) as the template and confirm with Create.

    .NET Core

  4. Open the Package Manager Console by choosing Package Manager Console from the Tools -> NuGet Package Manager main menu and type in the following command to install the TXTextControl.Web.DocumentViewer package:

    PM> Install-Package TXTextControl.Web.DocumentViewer

  5. While the project is selected in the Solution Explorer, choose Project -> Add Reference... to open the Reference Manager. In the opened dialog, select Browse... to select the required TX Text Control assemblies. Navigate to the installation folder of TX Text Control and select the following assemblies from the Assembly folder:

    • TXDocumentServer.dll
    • TXTextControl.dll
    • TXTextControl.Server.dll
    • TXDrawing.dll

    .NET Core

    Repeat this step with the following assemblies from the Assembly/bin64 folder:

    • txic.dll
    • txkernel.dll
    • txtools.dll
    • txpdf.dll

    After selecting these assemblies, close the Reference Manager by confirming with OK.

  6. While the project is selected in the Solution Explorer, choose Project -> Add Existing Item.... Browse to the TX Text Control installation folder and select the following files from the Assembly/bin64:

    • tx28_xml.dll
    • tx28_css.dll
    • tx28_doc.dll
    • tx28_dox.dll
    • tx28_htm.dll
    • tx28_pdf.dll
    • tx28_rtf.dll
    • tx28_xlx.dll
  7. Select the files from step 6 in the Solution Explorer and set the Copy to Output Directory to Copy always.

  8. While the project is selected in the Solution Explorer, choose Project -> Add New Item.... Select Text File, name the file licenses.licx and close the dialog by clicking Add.

    .NET Core

    Open the newly added file and add the following content:

    TXTextControl.ServerTextControl, TXTextControl.Server, Culture=neutral, PublicKeyToken=6b83fe9a75cfb638
    view raw licenses.licx hosted with ❤ by GitHub

    Set the Copy to Output Directory property to Copy Always.

  9. Projects built with .NET Core 3.1 are not able to compile licenses into the resources using the license compiler. This manual step is required for licensed controls in .NET Core 3.1 applications.

    Build the application now by pressing F6 or choose Build Solution from the Build main menu.

  10. Open a Developer Command Prompt with explicit administrator rights and change the directory to the project output directory such as \bin\debug\dotnetcoreapp3.1. Type in the following command:

    lc.exe /target:myDotnetCoreApp.dll /complist:licenses.licx /i:"TXTextControl.Server.dll"

    Where myDotnetCoreApp.dll is the assembly name of your web application.

  11. Now, type in the following command to rename and move the created license file to the project's root folder:

    move myDotnetCoreApp.dll.licenses ..\..\..\dll.licenses

  12. Back in Visual Studio, select the file dll.licenses in the Solution Explorer and set the Build Action to Embedded Resource.

    .NET Core

  13. While the project is selected in the Solution Explorer, create a new folder and name it App_Data by choosing New Folder from the Project main menu.

    Select the App_Data folder and click Add Existing Item... from the Project main menu.

    Browse to the following TX Text Control installation folder:

    C:\Program Files\Text Control GmbH\TX Text Control 28.0.NET Server for ASP.NET\Samples\Demo\

    Select the file demo.rtf and confirm with Add.

  14. Open the file Startup.cs and insert the following code anywhere to the Configure method to enable the App_Data folder:

    string baseDir = env.ContentRootPath;
    AppDomain.CurrentDomain.SetData("DataDirectory", System.IO.Path.Combine(baseDir, "App_Data"));
    view raw code.cs hosted with ❤ by GitHub
  15. Open the Index.cshtml view from the Views -> Home folder and delete the pre-defined code and replace it with the following:

    @using TXTextControl.Web.MVC.DocumentViewer
    @using System.IO;
    @Html.TXTextControl().DocumentViewer(settings =>
    {
    settings.DocumentPath =
    AppDomain.CurrentDomain.GetData("DataDirectory").ToString() + "\\demo.rtf ";
    settings.Dock = DocumentViewerSettings.DockStyle.Window;
    }).Render()
    view raw test.cshtml hosted with ❤ by GitHub

Compile and start your application by pressing F5.