2016-04-01 89 views
4

我想知道是否可以在nuget.exe pack命令的輸出中抑制警告消息?具體的消息會很棒,但我可以忍受所有這些消息。抑制Nuget.exe的警告輸出

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包,這將是通過八達通服務器部署爲應用程序。在這個dll中的程序集不需要被任何東西引用 - 這個包不應該被引用作爲構建的一部分(我們還有其他更多的邏輯包)。

我想壓制這個警告,因爲我正在創建的實際包有成千上萬的文件,其中沒有一個在lib文件夾中。從這一警告的輸出噪聲使其難以看到任何其他合法警告我可能有興趣在

UPDATE:這個包是從一個自定義nuspec文件打包 - 它由數百個項目的輸出。 ,因此指定一個項目文件對於消除警告不是一個可行的選項。 FWIW,指定一個項目文件確實消除了警告,因爲它最終將項目輸出放到一個lib文件夾 - 這正是我想要避免的。

TIA用於任何輸入。

+0

FWIW,我得到這個警告可以安全地忽略。我的nuget軟件包已成功創建,並通過八達通按預期工作。我只是想知道我是否可以抑制這一點,這樣我在構建過程中輸出的混亂就少了。 – wbj

回答

6

首先,參考的NuGet明確規定什麼樣的有效值是Verbosity。在你下命令pack部分中提供的鏈接:

顯示此量的輸出的詳細說明:正常,安靜,(v2.5)詳細。

嘗試打包項目文件,而不是.nuspec文件,如果可能的話,使用小寫quiet標誌和使用-NoPackageAnalysis

nuget pack myproject.proj -Verbosity quiet -NoPackageAnalysis 
+2

「-Verbosity quiet」選項不會消除警告。另外,建設項目不是一種選擇。我使用的是nuspec,因爲我打包的文件來自(從字面上)數百個項目。我已經用這個細節更新了問題。 – wbj

2

-nopackageanalysis標誌抑制警告,使用.nuspec文件時也是如此。

你也可以考慮使用Octopack,如果它是一個選項。 Octopack被設計爲專門爲Octopus Deploy創建軟件包(即沒有lib文件夾,沒有虛假的警告消息等)。它使用NuGet引擎,所以你仍然可以使用.nuspec文件。

+1

-nopackageanalysis爲我解決了它。 當你想在同一個nuget中的多個項目,像OP一樣,Hovever Octopack不會工作。 –