簡體   English   中英

包管理器控制台與 Nuget.exe 構建文件行為

[英]Package Manager Console vs Nuget.exe build file behavior

我有一個 .net 4.71 經典項目,我正在嘗試向其中添加我生成的 nuget 包。 當我使用 Visual Studio 包管理器時,cli 或接口文件被添加到解決方案中。 當我通過 nuget.exe (4.5.1.4879) 添加包時,這些文件按預期運行,不會添加到解決方案中,而只會在構建時輸出。

什么可能導致這種情況以及如何防止這種行為?

使用 Update-Package 或 UI 時,將 .post-build 文件夾和 *.targets 添加到解決方案中。

包的 nuspec 文件:

    <package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
    <metadata>
        <id>idhere</id>
        <version>0.1.0.0</version>
        <authors>names here</authors>
        <requireLicenseAcceptance>false</requireLicenseAcceptance>
        <description></description>
    </metadata>
    <files>
        <file src="bin/release/project.dll" target="lib\net461" />
      <file src="bin/release/project.pdb" target="lib\net461" />
    <file src="*.ps1" target="build" />
        <file src=".post-build\*.*" target="build\.post-build" />
        <file src="*.targets" target="build" />
        <file src="**\*.cs" target="src" exclude="**\bin\**;**\obj**;**\Properties\**"/>
    </files>
</package>

什么可能導致這種情況以及如何防止這種行為?

那是因為安裝 nuget 包時包管理器控制台和Nuget.exe有不同的行為。 恐怕你無法阻止這種行為。

使用 nuget.exe 安裝包時, NuGet CLI 不會修改項目文件或 packages.config 通過這種方式,它類似於恢復,因為它只將包添加到磁盤,但不會更改項目的依賴項 請參閱NuGet CLI 參考

在此處輸入圖片說明

相反,在包管理器上操作安裝包:

將包及其依賴項安裝到項目中。

在此處輸入圖片說明

此外,我們無法在 Visual Studio 之外使用包管理器控制台 powershell,因為包管理器控制台提供對 Visual Studio 對象的訪問。

https://github.com/NuGet/Home/issues/1512

所以,這就是為什么包管理器控制台和 Nuget.exe 有不同行為的原因。

希望這可以幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM