Here is a working .nuspec file to get you guys going, it works, with the native binaries as well. I have only tested this with PackageReference, but it is written to work with packages.config as well. It will add GdPicture.NET.dll as a proper assembly reference and also properly copy the native binaries to the project's output directory on build. It does this without modifications to the user's project.
Code: Select all
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2012/06/nuspec.xsd">
<metadata>
<id>$id$</id>
<version>$version$</version>
<authors>$author$</authors>
<owners>$author$</owners>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>$description$</description>
<dependencies />
<references>
<reference file="GdPicture.NET.14.dll" />
</references>
<contentFiles>
<files include="any/net47/eng.traineddata" buildAction="Content" copyToOutput="true" />
<files include="any/net47/GdPicture.NET.14.barcode.1d.reader.64.dll" buildAction="Content" copyToOutput="true" />
<files include="any/net47/GdPicture.NET.14.barcode.1d.reader.dll" buildAction="Content" copyToOutput="true" />
<files include="any/net47/GdPicture.NET.14.document.analyzer.64.dll" buildAction="Content" copyToOutput="true" />
<files include="any/net47/GdPicture.NET.14.document.analyzer.dll" buildAction="Content" copyToOutput="true" />
<files include="any/net47/GdPicture.NET.14.filters.64.dll" buildAction="Content" copyToOutput="true" />
<files include="any/net47/GdPicture.NET.14.filters.dll" buildAction="Content" copyToOutput="true" />
<files include="any/net47/GdPicture.NET.14.image.gdimgplug.64.dll" buildAction="Content" copyToOutput="true" />
<files include="any/net47/GdPicture.NET.14.image.gdimgplug.dll" buildAction="Content" copyToOutput="true" />
<files include="any/net47/GdPicture.NET.14.jbig2.encoder.64.dll" buildAction="Content" copyToOutput="true" />
<files include="any/net47/GdPicture.NET.14.jbig2.encoder.dll" buildAction="Content" copyToOutput="true" />
<files include="any/net47/GdPicture.NET.14.ocr.tesseract.3.64.dll" buildAction="Content" copyToOutput="true" />
<files include="any/net47/GdPicture.NET.14.ocr.tesseract.3.dll" buildAction="Content" copyToOutput="true" />
<files include="any/net47/GdPicture.NET.14.twain.client.64.dll" buildAction="Content" copyToOutput="true" />
<files include="any/net47/GdPicture.NET.14.twain.client.dll" buildAction="Content" copyToOutput="true" />
</contentFiles>
</metadata>
<files>
<file src="Build\Framework\$id$\net47\eng.traineddata" target="content\eng.traineddata" />
<file src="Build\Framework\$id$\net47\GdPicture.NET.14.barcode.1d.reader.64.dll" target="content\GdPicture.NET.14.barcode.1d.reader.64.dll" />
<file src="Build\Framework\$id$\net47\GdPicture.NET.14.barcode.1d.reader.dll" target="content\GdPicture.NET.14.barcode.1d.reader.dll" />
<file src="Build\Framework\$id$\net47\GdPicture.NET.14.document.analyzer.64.dll" target="content\GdPicture.NET.14.document.analyzer.64.dll" />
<file src="Build\Framework\$id$\net47\GdPicture.NET.14.document.analyzer.dll" target="content\GdPicture.NET.14.document.analyzer.dll" />
<file src="Build\Framework\$id$\net47\GdPicture.NET.14.filters.64.dll" target="content\GdPicture.NET.14.filters.64.dll" />
<file src="Build\Framework\$id$\net47\GdPicture.NET.14.filters.dll" target="content\GdPicture.NET.14.filters.dll" />
<file src="Build\Framework\$id$\net47\GdPicture.NET.14.image.gdimgplug.64.dll" target="content\GdPicture.NET.14.image.gdimgplug.64.dll" />
<file src="Build\Framework\$id$\net47\GdPicture.NET.14.image.gdimgplug.dll" target="content\GdPicture.NET.14.image.gdimgplug.dll" />
<file src="Build\Framework\$id$\net47\GdPicture.NET.14.jbig2.encoder.64.dll" target="content\GdPicture.NET.14.jbig2.encoder.64.dll" />
<file src="Build\Framework\$id$\net47\GdPicture.NET.14.jbig2.encoder.dll" target="content\GdPicture.NET.14.jbig2.encoder.dll" />
<file src="Build\Framework\$id$\net47\GdPicture.NET.14.ocr.tesseract.3.64.dll" target="content\GdPicture.NET.14.ocr.tesseract.3.64.dll" />
<file src="Build\Framework\$id$\net47\GdPicture.NET.14.ocr.tesseract.3.dll" target="content\GdPicture.NET.14.ocr.tesseract.3.dll" />
<file src="Build\Framework\$id$\net47\GdPicture.NET.14.twain.client.64.dll" target="content\GdPicture.NET.14.twain.client.64.dll" />
<file src="Build\Framework\$id$\net47\GdPicture.NET.14.twain.client.dll" target="content\GdPicture.NET.14.twain.client.dll" />
<file src="Build\Framework\$id$\net47\eng.traineddata" target="contentFiles\any\net47\eng.traineddata" />
<file src="Build\Framework\$id$\net47\GdPicture.NET.14.barcode.1d.reader.64.dll" target="contentFiles\any\net47\GdPicture.NET.14.barcode.1d.reader.64.dll" />
<file src="Build\Framework\$id$\net47\GdPicture.NET.14.barcode.1d.reader.dll" target="contentFiles\any\net47\GdPicture.NET.14.barcode.1d.reader.dll" />
<file src="Build\Framework\$id$\net47\GdPicture.NET.14.document.analyzer.64.dll" target="contentFiles\any\net47\GdPicture.NET.14.document.analyzer.64.dll" />
<file src="Build\Framework\$id$\net47\GdPicture.NET.14.document.analyzer.dll" target="contentFiles\any\net47\GdPicture.NET.14.document.analyzer.dll" />
<file src="Build\Framework\$id$\net47\GdPicture.NET.14.filters.64.dll" target="contentFiles\any\net47\GdPicture.NET.14.filters.64.dll" />
<file src="Build\Framework\$id$\net47\GdPicture.NET.14.filters.dll" target="contentFiles\any\net47\GdPicture.NET.14.filters.dll" />
<file src="Build\Framework\$id$\net47\GdPicture.NET.14.image.gdimgplug.64.dll" target="contentFiles\any\net47\GdPicture.NET.14.image.gdimgplug.64.dll" />
<file src="Build\Framework\$id$\net47\GdPicture.NET.14.image.gdimgplug.dll" target="contentFiles\any\net47\GdPicture.NET.14.image.gdimgplug.dll" />
<file src="Build\Framework\$id$\net47\GdPicture.NET.14.jbig2.encoder.64.dll" target="contentFiles\any\net47\GdPicture.NET.14.jbig2.encoder.64.dll" />
<file src="Build\Framework\$id$\net47\GdPicture.NET.14.jbig2.encoder.dll" target="contentFiles\any\net47\GdPicture.NET.14.jbig2.encoder.dll" />
<file src="Build\Framework\$id$\net47\GdPicture.NET.14.ocr.tesseract.3.64.dll" target="contentFiles\any\net47\GdPicture.NET.14.ocr.tesseract.3.64.dll" />
<file src="Build\Framework\$id$\net47\GdPicture.NET.14.ocr.tesseract.3.dll" target="contentFiles\any\net47\GdPicture.NET.14.ocr.tesseract.3.dll" />
<file src="Build\Framework\$id$\net47\GdPicture.NET.14.twain.client.64.dll" target="contentFiles\any\net47\GdPicture.NET.14.twain.client.64.dll" />
<file src="Build\Framework\$id$\net47\GdPicture.NET.14.twain.client.dll" target="contentFiles\any\net47\GdPicture.NET.14.twain.client.dll" />
<file src="Build\Framework\$id$\net47\GdPicture.NET.14.dll" target="lib\net47\GdPicture.NET.14.dll" />
</files>
</package>
It really is important that you guys publish NuGet packages. I'm not sure how you will handle licensing, but since GdPicture requires a key to be registered in code, I think this is a non-issue. Trial users can use the full download instead of the NuGet package.
You can also publish separate packages: one for core imaging, winforms, wpf, additional separate packages for OCR dictionaries. You can also include any tools in the NuGet packages as well. It is very powerful.