Ale*_*hov 9 msbuild visual-studio nuget
我想在构建时禁用NuGet包还原并使用单独的命令.这可能吗?
我的想法是使用这样的东西:
nuget.exe restore
msbuild.exe /p:NuGetRestorePackages=false
Run Code Online (Sandbox Code Playgroud)
更新:
MSBuild.exe ... /p:RestorePackages=false.nuget\nuget.exe restore solution.sln恢复包如今,我建议让您的 CLI 方法更加全面和可靠。
短期计划
细节
使用构建工具将使您独立于 Visual Studio 安装。
从Visual Studio 下载页面下载Visual Studio 2017 的构建工具(直接链接)
此处记录的命令行参数:使用命令行参数安装 Visual Studio 2017
此处列出了所有工作负载和组件:Visual Studio Build Tools 2017 组件目录
使用 PowerShell 模块VSSetup。并选择x86 或 x64 MSBuild 版本
clean使用目标运行 MSBuild
帮助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
Run Code Online (Sandbox Code Playgroud)
因此,您将不会有任何文件系统、PATH 或 Visual Studio 依赖项。您的解决方案将可以在本地计算机和构建服务器上重复使用。
| 归档时间: |
|
| 查看次数: |
3897 次 |
| 最近记录: |