Application Deployment |
When you use Patagames Pdf.Net SDK v5 in your application, your application must reference the necessary Patagames assemblies. When installing via NuGet, all required dependencies, including framework-specific managed assemblies and native platform runtimes, are resolved automatically. If you are performing a manual installation, you only need to reference the primary core assembly and the specific UI assemblies required by your target platform (WinForms, WPF, or WinUI).
Please do not use Patagames installer to install Patagames assemblies to your clients' machines. Patagames installer should be used only for the developers' machines. For client deployments, use NuGet distribution or direct file packaging. |
This is the simplest strategy. For each Patagames assembly reference in the Solution Explorer, open its context menu, click on properties and in the property grid set the Copy Local property of the reference to True.

Thus these Patagames assemblies will be copied to your Release/Bin or Debug/Bin output folders. Your application deployment consists of copying the executable, managed DLLs, and XML documentation files to your client machines.
The native platform runtime libraries (such as ptgpdfcore.dll for Windows, libptgpdfcore.so for Linux, or libptgpdfcore.dylib for macOS) must be placed next to your application binaries. It is highly recommended to preserve the standard .NET runtime directory tree structure (runtimes/{platform}/native/). Ensure that these native assets are selected in your project, and their Copy to Output Directory property is set to Copy if newer or Copy always.
By default, when preparing a ClickOnce distribution of an application, Visual Studio uses its default settings, which assume that all project assemblies located in the Global Assembly Cache (GAC) of the local machine are also available on the remote target environment. Because the CopyLocal property for GAC assemblies defaults to false, ClickOnce marks them as prerequisites in the application manifest and excludes them from the package. To prevent deployment failures on environments where Patagames libraries are not present in the GAC, you must explicitly include them in the publication layout.
Here are the steps to safely deploy your application using ClickOnce:
Open your project in Visual Studio.
Go to your project's Properties.
Go to the Publish settings tab.
Click on the Application Files... button to open the distribution file manifest.
Check the Show all files checkbox at the bottom left corner to display all referenced dependencies.
Locate the Patagames assemblies and their respective native runtimes (e.g., ptgpdfcore.dll targets). They might display a default publish status of Prerequisite(Auto).
Change the Publish Status field of these required assets from Prerequisite to Include and accept the changes.
Republish your project to verify that all managed and native components are embedded inside the ClickOnce installer bundle.
The Global Assembly Cache (GAC) is a legacy mechanism available strictly for .NET Framework (2.0 - 4.8.1) deployments. Modern .NET (5.0 up to .NET 10.0+) and NativeAOT environments do not support the GAC; they rely entirely on local application packaging or containerized dependencies. |
If you are deploying a legacy .NET Framework application, you may choose to register Patagames assemblies into the GAC of your client machines using the following instructions:
Run the Developer Command Prompt for Visual Studio with Administrative privileges.
Execute the gacutil.exe tool with the -i (install) parameter and specify the path to the required assemblies. For example:
gacutil.exe -i "C:\Program Files (x86)\Patagames Software\Pdf.Net SDK\net45\Patagames.Pdf.dll"
gacutil.exe -i "C:\Program Files (x86)\Patagames Software\Pdf.Net SDK\net45\Patagames.Pdf.WinForms.dll"
To verify registration or view assembly attributes (Version, Culture, PublicKeyToken), run the list command with a filter:
gacutil -l Patagames.Pdf*
The *.Design.dll assemblies are meant strictly for developer environments and may not be deployed to end-users under any circumstance. |
Depending on the operating systems and environments your application targets, you must redistribute the matching native runtime assets from the v5.x ecosystem:
Operating System / Environment | Architecture / Target | Required Native Asset Path (Relative to output root) |
|---|---|---|
Windows | x86 (32-bit) | runtimes\win-x86\native\ptgpdfcore.dll |
Windows | x64 (64-bit) | runtimes\win-x64\native\ptgpdfcore.dll |
Windows | AnyCPU (Automatic Fallback) | Both win-x86 and win-x64 ptgpdfcore.dll binaries inside their respective runtime paths. |
macOS | Intel (x86_64) & Apple Silicon (arm64) | runtimes\osx\native\libptgpdfcore.dylib (Universal Binary) |
Standard Linux (GLIBC) | x64, x86, ARM, ARM64 | runtimes\linux-{arch}\native\libptgpdfcore.so |
Alpine Linux (MUSL) | x64, x86, ARM, ARM64 | runtimes\linux-musl-{arch}\native\libptgpdfcore.so |
Android | Devices & Emulators (arm64-v8a, armeabi-v7a, x86_64, x86) | runtimes\android\native\libptgpdfcore.so slices |
iOS | Physical Devices & Simulators | runtimes\ios\native\PtgPdfCore.xcframework bundle |
Assembly Identity | File name |
|---|---|
Patagames.Pdf | Patagames.Pdf.dll |
Assembly Identity | File name | Description |
|---|---|---|
Patagames.Pdf.Gdi | Patagames.Pdf.Gdi.dll | Available for target environments relying on GDI+ infrastructure. Contains graphics-dependent rendering classes and native system drawing extensions. |
Assembly Identity | File name | Target Components and Frameworks |
|---|---|---|
Patagames.Pdf.WinForms | Patagames.Pdf.WinForms.dll | WinForms viewer controls, toolbars, and advanced desktop manipulation components. |
Patagames.Pdf.Wpf | Patagames.Pdf.Wpf.dll | WPF visual components, layout-ready canvas controls, and desktop interactive wrappers. |
Patagames.Pdf.WinUI | Patagames.Pdf.WinUI.dll | Modern WinUI 3 / Windows App SDK and Universal Windows Platform (UWP) interactive viewer controls. |