禁止 Nuget.exe 的警告输出

Suppress warning output from Nuget.exe

我想知道是否可以在 nuget.exe pack 命令的输出中抑制警告消息?具体消息会很棒,但我可以忍受抑制所有消息。

nuget command line documentation 提到了 Verbosity 标志,但从未真正指定它的有效值是什么。我尝试了以下方法:

nuget pack mypackage.nuspec -Verbosity Quiet

但似乎什么也没做。

这是我要打包的 nuspec 的示例:

<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
    <metadata>
        <id>MyPackage</id>
        <version>1.0.0</version>
        <authors>Administrator</authors>
        <requireLicenseAcceptance>false</requireLicenseAcceptance>
        <description>My package description.</description>
    </metadata>
    <files>
        <file src="mysourcepath\foo.dll" target="mytargetpath\foo.dll" />
    </files>
</package>

我收到的警告信息是这样的:

WARNING: 1 issue(s) found with package 'MyPackage'.

Issue: Assembly outside lib folder.
Description: The assembly 'mytargetpath\foo.dll' is not inside the 'lib' folder and hence it won't be added as a reference when the package is installed into a project.
Solution: Move it into the 'lib' folder if it should be referenced.

我正在创建一个 nuget 包,它将通过 Octopus 服务器部署为应用程序。这个 dll 中的程序集不需要被任何东西引用——这个包不应该作为构建的一部分被引用(我们有其他更合乎逻辑的包)。

我想禁止显示此警告,因为我创建的实际包有数千个文件,none 其中 none 在 lib 文件夹中。这个警告的输出噪音让我很难看到我可能感兴趣的任何其他合法警告。

更新:这个包是从一个自定义的 nuspec 文件打包的——它包含数百个项目的输出,所以指定一个项目文件不是消除警告。 FWIW,指定一个项目文件 确实 消除了警告,因为它最终将项目输出放入 lib 文件夹中——这是我试图避免的。

任何输入的 TIA。

首先,nuget 参考明确指定了 Verbosity 的有效值。在 link 中,您在 pack 命令部分提供:

Display this amount of details in the output: normal, quiet, (v2.5) detailed.

如果可能,请尝试打包您的项目文件而不是 .nuspec 文件,对 quiet 标志使用小写并使用 -NoPackageAnalysis:

nuget pack myproject.proj -Verbosity quiet -NoPackageAnalysis

-nopackageanalysis 标志将抑制警告,即使在使用 .nuspec 文件时也是如此。

如果可以的话,您也可以考虑使用 Octopack。 Octopack 旨在专门为 Octopus Deploy 创建包(即没有 lib 文件夹、没有虚假警告消息等)。它在底层使用 NuGet,因此您仍然可以将它与 .nuspec 文件一起使用。

您可以将特定属性传递到 NuGet CLI,包括“NoWarn”:

nuget.exe pack package.nuspec -Properties NoWarn=NU5104

https://docs.microsoft.com/en-us/nuget/reference/cli-reference/cli-ref-pack#suppressing-pack-warnings