Visual studio 如何使用msbuild命令行选项禁用nuget包还原?
我想禁用NuGet package restore on build,并为此使用单独的命令。这可能吗 我的想法是使用如下内容:Visual studio 如何使用msbuild命令行选项禁用nuget包还原?,visual-studio,msbuild,nuget,Visual Studio,Msbuild,Nuget,我想禁用NuGet package restore on build,并为此使用单独的命令。这可能吗 我的想法是使用如下内容: nuget.exe restore msbuild.exe /p:NuGetRestorePackages=false 更新: MSBuild.exe可以禁用包更新/p:RestorePackages=false 它看起来像是.nuget\nuget.exe还原解决方案.sln还原包 如今,我建议让您的CLI方法更全面、更可靠 短期计划 安装Visual Studi
nuget.exe restore
msbuild.exe /p:NuGetRestorePackages=false
更新:
MSBuild.exe可以禁用包更新/p:RestorePackages=false
- 它看起来像是
还原包.nuget\nuget.exe还原解决方案.sln
详细信息
VSSetup
。然后选择x86或x64 MSBuild版本
从此处下载或安装:clean
目标运行MSBuildnuget.exe
使用正确的MSBuild
nuget.exe还原-MSBuildPath“C:\…”
build
target运行MSBuild(您可以添加其他必需参数)因此,您将没有任何文件系统、路径或VisualStudio依赖项。您的解决方案将在本地计算机和构建服务器上可重用
您可以使用“MSBuild/p:RestorePackages=false”禁用生成时的包还原命令。您应该将更新发布为问题的答案,而不是编辑。这对我很有效。MSBuild正在抱怨NuGet版本,因此我不得不停止MSBuild尝试还原,而是在生成之前从命令行运行NuGet.exe。
# 1. Find MS Build
Import-Module $PSScriptRoot\VSSetup\VSSetup.psd1
$msBuildPath = (Get-VSSetupInstance | Select-VSSetupInstance -Version 15.0 -Product Microsoft.VisualStudio.Product.BuildTools).InstallationPath
if ([System.IntPtr]::Size -eq 8)
{
$global:msbuildPath = Join-Path $msBuildPath 'MSBuild\15.0\Bin\amd64'
}
else
{
$global:msbuildPath = Join-Path $msBuildPath 'MSBuild\15.0\Bin'
}
Write-Output "Using MSBuild from $global:msbuildPath"
Write-Output "MSBuild /version"
$msbuild = Join-Path $global:msbuildPath msbuild
& $msbuild /version
# 2. Clean
& $msbuild "$sln_file" /t:Clean /v:q /nologo
# 3. Restore
$nuget = Join-Path $PSScriptRoot "\.nuget\nuget.exe"
& $nuget restore -MSBuildPath $global:msbuildPath
# 4. Build
& $msbuild "$sln_file" /t:Build /v:q /nologo