我有一个nuget软件包,它使用我有许可证的Apose.PDF软件包。许可证放置在一个名为Aspose.Total.lic的单独文件中,并且位于同一文件夹中。文件夹结构如下所示。
Project
-PDFReader.cs
-Aspose.Total.lic
PDFReader.cs具有以下代码以读取许可证:
static PDFReader()
{
var license = new License();
license.SetLicense("Aspose.Total.lic");
}
所有这些在本地都可以正常工作。但是,当我将代码导出到Nuget程序包并从另一个程序使用该程序包时,出现了一个异常,即找不到“ Aspose.Total.lic”。将文件内容复制并将其作为SetLicense的参数无法正常工作,需要一个文件。现在的问题是,打包nuget程序包时如何以及可能在哪里导出文件?这是我的nuspec文件(一些代码缩写):
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2011/10/nuspec.xsd">
<metadata>
<id>XYZ</id>
<version>1.3.7</version>
<summary />
<dependencies>
<dependency id="Aspose.PDF" version="18.10.0" />
</dependencies>
<frameworkAssemblies>
<frameworkAssembly assemblyName="System" />
<frameworkAssembly assemblyName="System.Data" />
</frameworkAssemblies>
</metadata>
<files>
<file src="XYZ\bin\Release\XYZ.dll" target="lib\net47\XYZ.dll" />
<file src="XYZ\Aspose.Total.lic" target="lib\Aspose.Total.lic" />
</files>
</package>
我的猜测是目标文件的位置错误。
答案 0 :(得分:0)
NuGet自动显示3个文件夹,lib
表示dll,tools
表示Powershell脚本,content
表示其他内容。 (我认为-已经有一段时间了)
尝试更改:
<files>
<file src="XYZ\bin\Release\XYZ.dll" target="lib\net47\XYZ.dll" />
<file src="XYZ\Aspose.Total.lic" target="lib\Aspose.Total.lic" />
</files>
收件人:
<files>
<file src="XYZ\bin\Release\XYZ.dll" target="lib\net47\XYZ.dll" />
<file src="XYZ\Aspose.Total.lic" target="content\Aspose.Total.lic" />
</files>
答案 1 :(得分:0)
我认为您应该将该文件打包为 content 。您可以检查documentation的实现方式。