如何避免NuGet包含相关的二进制文件?

时间:2018-10-04 22:01:08

标签: nuget nuget-spec

我有一个依赖于另一个nuget包的项目,该包将本机二进制文件放入我项目的bin目录中。

我需要创建一个Nuget规范来打包 my 二进制文件。简单的方法

<package>
    <metadata>
        <id>MY ID</id>
        <version>$version$</version>
        <title>MY TITLE</title>
        <authors>ME</authors>
        <owners>ME</owners>
        <requireLicenseAcceptance>false</requireLicenseAcceptance>
        <description>MY DESC</description>
        <releaseNotes>Internal Version</releaseNotes>
        <copyright>Copyright 2018</copyright>
        <dependencies>
            <dependency id="foo" version="3.0.6" exclude="all"/>
            <dependency id="bar" version="3.0.6" exclude="all"/>
            <dependency id="baz" version="3.0.6.101" exclude="all"/>
            <dependency id="gronk" version="11.0.2" exclude="all" />
        </dependencies>
    </metadata>
</package>

导致巨大 nupkg,其中包含大量相关二进制文件,以及一堆警告:

WARNING: Issue: Assembly outside lib folder.

空文件元素会抑制垃圾箱,但是我确实还需要软件包中包含一些文件(即readme.md和一些示例)。

当我在nuspec中添加以下内容时:

<files>
    <file src=".\Content\EventsHelpers.cs" target="content\Helpers" />
    <file src=".\Readme.md" target="content" />
</files>

我得到了所需的内容,但随后从相关二进制文件中获得了(大)文件。

如何在抑制依赖二进制文件的同时获取所需的文件?

编辑:我可以通过命令行执行此操作,但是,我正在使用的CI管道不允许我设置命令行。所以我需要通过nuspec来做到这一点。

0 个答案:

没有答案