Soluzione permanente (+ per macchine da costruzione)
Visual Studio 2017
Per VS 2017, chiama i seguenti script CMD con il tuo account Windows di destinazione:
Community edition
professionale edizione
Enterprise
edition
TL; DR. Note per i poveri DisableOutOfProcBuild.exe
, la soluzione offerta da Microsoft che uso per VS 2017.
DisableOutOfProcBuild.exe
non dà per scontato che lo chiamerai dalla sua cartella di installazione . Quindi, non puoi copiare questo file .exe. (A proposito, se vuoi creare .vdproj, devi installare VS.)
DisableOutOfProcBuild.exe
funzionerà solo se la directory CMD corrente è impostata sul percorso di installazione di DisableOutOfProcBuild.exe.
Ad esempio, per l'edizione VS Professional dobbiamo chiamare
CD "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\CommonExtensions\Microsoft\VSI\DisableOutOfProcBuild"
CALL DisableOutOfProcBuild.exe
Visual Studio 2015 e versioni precedenti
da CMD per l'attuale utente Windows
Per molte persone la creazione / correzione sotto HKEY_CURRENT_USER\..
non sempre funziona o funziona in modo permanente.
Cercando di risolvere questo problema, ho scoperto che in effetti devo creare / modificare qualche strana chiave sotto HKEY_USERS HKEY_USERS\S-1-5-xx-xxxxxxxxxx-xxxxxxxxx-xxxxxxxxxxx-xxxxx\...\MSBuild
Ma ho anche scoperto che se userò una console CMD HKCU
con la correzione proposta,
REG ADD HKCU\SOFTWARE\Microsoft\VisualStudio\14.0_Config\MSBuild /t REG_DWORD /v EnableOutOfProcBuild /d 0 /f
questo scriverà il valore esattamente nella strana chiave HKEY_USERS \ S-1-5-xx-xxxxxxxxxx-xx ... , non in HKEY_CURRENT_USER .
Quindi, funziona da un primo scatto e per sempre. Usa la console CMD.
REG ADD HKCU\SOFTWARE\Microsoft\VisualStudio\14.0_Config\MSBuild /t REG_DWORD /v EnableOutOfProcBuild /d 0 /f
@REM (use 12.0_Config for VS2013)
Risolutore per build server
D'altra parte questo codice funziona sempre per un account utente corrente che lo avvia (a causa di HKEY_CURRENT_USER). Ma i build-server spesso usano account dedicati o Local System, ecc.
L'ho risolto sulle mie macchine di compilazione aggiungendo il seguente semplice file batch alle mie attività di compilazione (Jenkins, TeamCity, CruiseControl)
VS-2015 ,
VS-2013 ,
VS-2017-Community ,
VS-2017-Professional ,
VS-2017-Enterprise
elegant solution
) in sintesi, IMHO.