如何确保Nuget包中的内容文件位于bin文件夹中

时间:2019-07-11 07:36:04

标签: asp.net-core .net-core nuget nuget-package

我需要将2个.dll文件以及2个.xml文件分发到针对net47的各种.Net Core项目。 .dll和.xml文件都必须放在项目的bin文件夹中。

我在下面创建了.nuspec文件。我正在将所有文件复制到lib \ net47。我还将.xml文件复制到contentFiles \ any \ any。

我正在使用PackageReference将这个Nuget软件包包含到我的项目中:

<PackageReference Include="Decideware.Spire.Xls" Version="*" />

问题是当我构建项目时,.xml文件会在源文件中弹出。另外,构建动作已从我的.nuspec中的“无”更改为“ C#编译器”,而copyToOutput也已从“ true”更改为“不复制”。然后,Visual Studio尝试将.xml文件当作C#文件来生成,从而导致出现许多错误消息。

如何构造.nuspec以便将.xml文件复制到我的bin目录中?

<?xml version="1.0" encoding="utf-8"?>
<package>
    <metadata>
        <id>Decideware.Spire.Xls</id>
        <version>7.12.3</version>
        <!-- required for .Net Core style PackageReferences -->
        <contentFiles>
            <files include="Spire.XLS.xml" buildAction="None" copyToOutput="true" />
            <files include="license.elic.xml" buildAction="None" copyToOutput="true" />
        </contentFiles>
    </metadata>
    <files>
        <file src="Spire.License.dll" target="lib\net47\Spire.License.dll" />
        <file src="Spire.XLS.dll" target="lib\net47\Spire.XLS.dll" />

        <file src="Spire.XLS.xml" target="lib\net47\Spire.XLS.xml" />
        <file src="license.elic.xml" target="lib\net47\license.elic.xml" />

        <file src="Spire.XLS.xml" target="contentFiles\any\any\Spire.XLS.xml" />
        <file src="license.elic.xml" target="contentFiles\any\any\license.elic.xml" />
    </files>
</package>

0 个答案:

没有答案