如何使用nuget导出文件?

时间:2018-11-06 14:38:17

标签: c#

我有一个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>

我的猜测是目标文件的位置错误。

2 个答案:

答案 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的实现方式。