抑制Nuget.exe的警告输出

13
我想知道是否可以在nuget.exe打包命令的输出中禁止警告消息?具体的消息会很棒,但是如果全部禁止也可以。
nuget 命令行文档提到了一个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中的程序集不需要被任何东西引用——这个包在构建过程中不应该被引用(我们有其他更合理的包来处理这个问题)。我想要压制这个警告,因为我实际上创建的包有数千个文件,其中没有一个在lib文件夹中。这个警告的输出噪音使得很难看到我可能感兴趣的任何其他合法警告。更新:这个包是从一个自定义的nuspec文件打包而成的——它由数百个项目的输出组成,因此指定一个项目文件不是消除警告的可行选项。顺便说一下,指定一个项目文件确实可以消除警告,因为它最终会把项目输出放到一个lib文件夹中——这正是我想避免的。感谢您的任何帮助。

就我所知,这个警告可以安全地忽略。我的NuGet包已经成功创建,并通过Octopus按预期工作。我只是想知道是否可以抑制它,以便在构建过程中输出更少的杂乱信息。 - wbj
3个回答

13

首先,NuGet 引用清楚地指定了Verbosity的有效值。在您提供的链接中,在pack命令部分下:

在输出中显示这个详细程度:normal、quiet、(v2.5) detailed。

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

nuget pack myproject.proj -Verbosity quiet -NoPackageAnalysis

3
"-Verbosity quiet"选项不能消除警告。此外,使用项目构建也不是一个选项。我正在使用nuspec,因为我要打包的文件来自(真正的)数百个项目。我已经在问题中更新了这个细节。 - wbj

6
-nopackageanalysis标志将抑制警告,即使使用.nuspec文件也是如此。
如果可以的话,您还可以考虑使用Octopack。 Octopack专门为Octopus Deploy创建软件包(即没有lib文件夹,没有杂乱的警告信息等等) 。 它在幕后使用NuGet,因此您仍然可以将其与.nuspec 文件一起使用。

1
-nopackageanalysis 对我来说解决了这个问题。 但是当你想要在同一个 NuGet 中使用多个项目时,Octopack 将无法正常工作,就像 OP 一样。 - Thomas Therkildsen

4

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接