我想在构建时禁用NuGet包还原,并使用单独的命令。这可能吗?
我的想法是使用这样的东西:
nuget.exe restore
msbuild.exe /p:NuGetRestorePackages=false
更新
MSBuild.exe ... /p:RestorePackages=false
.nuget\nuget.exe restore solution.sln
恢复了包答案 0 :(得分:1)
您可以使用“ MSBuild / p:RestorePackages = false ”来禁用构建命令上的程序包还原。
答案 1 :(得分:0)
如今,我建议让您的CLI方法更全面,更可靠。
简短计划
<强>详情
使用构建工具可以独立于Visual Studio安装。
从Build Tools for Visual Studio 2017(Visual Studio Downloads page)
下载direct link此处记录的命令行参数:Use command-line parameters to install Visual Studio 2017
此处列出了所有工作负载和组件:Visual Studio Build Tools 2017 component directory
使用PowerShell模块VSSetup
。并选择 x86或x64 MSBuild版本
从此处下载或安装:Github: Microsoft/Visual Studio Setup PowerShell Module
使用clean
目标
帮助nuget.exe
使用正确的MSBuild
nuget.exe restore -MSBuildPath "C:\..."
使用build
目标运行MSBuild(您可以添加其他必需参数)
# 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
结果,您将不会拥有任何文件系统,PATH或Visual Studio依赖项。您的解决方案可以在本地计算机和构建服务器上重复使用。