禁止Nuget.exe的警告输出

wbj*_*wbj 7 nuget octopus-deploy

我想知道我是否可以在nuget.exe pack命令的输出中禁止警告消息?具体的消息会很棒,但我可以忍住压抑所有这些消息.

nuget 命令行文档提到了Verbosity标志,但从未真正指定它的有效值.我尝试过以下方法:

nuget pack mypackage.nuspec -Verbosity Quiet
Run Code Online (Sandbox Code Playgroud)

但似乎没有做任何事情.

这是我试图打包的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>
Run Code Online (Sandbox Code Playgroud)

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

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.
Run Code Online (Sandbox Code Playgroud)

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

我想抑制此警告,因为我正在创建的实际包有数千个文件,其中没有一个在lib文件夹中.这一警告的输出噪音使我很难看到我可能感兴趣的任何其他合法警告.

更新:此包是从自定义的nuspec文件打包的 - 它包含数百个项目的输出,因此指定项目文件不是消除警告的可行选项.FWIW,指定项目文件确实消除了警告,因为它最终将项目输出放入lib文件夹 - 这正是我想要避免的.

任何输入的TIA.

dan*_*rah 8

首先,nuget reference清楚地指定了有效值的用途Verbosity.在pack命令部分下提供的链接中:

在输出中显示此数量的详细信息:normal,quiet,(v2.5)详细.

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

nuget pack myproject.proj -Verbosity quiet -NoPackageAnalysis
Run Code Online (Sandbox Code Playgroud)

  • "-Verbosity quiet"选项不会消除警告.此外,建设项目不是一种选择.我正在使用一个nuspec,因为我正在打包的文件来自(字面上)数百个项目.我已经用这个细节更新了问题. (2认同)

Jam*_*phy 5

-nopackageanalysis即使在使用.nuspec文件时,该标志也会抑制警告。

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