程序包管理器控制台与 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>
What might be causing this and How can I prevent this behavior?
那是因为包管理器控制台和 Nuget.exe
在您安装 nuget 包时有不同的行为。恐怕你无法阻止这种行为。
当您使用nuget.exe安装包时,NuGet CLI 不会修改项目文件或packages.config;通过这种方式,它类似于 restore,因为它只将包添加到磁盘,但不会更改项目的依赖项。见 NuGet CLI reference:
相反,在包管理器上安装包:
Installs a package and its dependencies into a project.
此外,我们无法在 visual studio 之外使用包管理器控制台 powershell,因为包管理器控制台提供对 visual studio 对象的访问。
https://github.com/NuGet/Home/issues/1512
所以,这就是为什么您对包管理器控制台和 Nuget.exe 有不同行为的原因。
希望对您有所帮助。
我有一个 .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>
What might be causing this and How can I prevent this behavior?
那是因为包管理器控制台和 Nuget.exe
在您安装 nuget 包时有不同的行为。恐怕你无法阻止这种行为。
当您使用nuget.exe安装包时,NuGet CLI 不会修改项目文件或packages.config;通过这种方式,它类似于 restore,因为它只将包添加到磁盘,但不会更改项目的依赖项。见 NuGet CLI reference:
相反,在包管理器上安装包:
Installs a package and its dependencies into a project.
此外,我们无法在 visual studio 之外使用包管理器控制台 powershell,因为包管理器控制台提供对 visual studio 对象的访问。
https://github.com/NuGet/Home/issues/1512
所以,这就是为什么您对包管理器控制台和 Nuget.exe 有不同行为的原因。
希望对您有所帮助。