Vorrei eseguire l'override delle directory utilizzate da Visual Studio (devenv.exe) per i percorsi del compilatore e della libreria. So come farlo in modo interattivo tramite Strumenti-> Opzioni-> Directory VC++, ma mi piacerebbe automatizzarlo.come utilizzare il file .vsprops per sovrascrivere le directory VC++ in MS Visual Studio
http://msdn.microsoft.com/en-us/library/t9az1d21(VS.80).aspx ha una nota allettante su questo: "Se si desidera impostare percorsi di ricerca di directory (per i propri progetti) che possono essere condivisi da altri utenti o che possono essere applicati su più computer, Visual C++ fornisce un'alternativa all'utilizzo questa finestra di dialogo, tramite le finestre delle proprietà del progetto. Per ulteriori informazioni, vedere Fogli di proprietà (C++). "
Se si segue il collegamento alla documentazione dei fogli di proprietà, sono disponibili numerose informazioni sul meccanismo ma nessuna sulle proprietà effettive che è necessario impostare.
Ho trovato le informazioni popolate dalla finestra di dialogo Directory VC++, in% LocalAppData% \ Microsoft \ VisualStudio \ 8.0 \ VCComponents.dat (per VS 2005 e 9.0 per VS 2008); sembra impostare varie proprietà sotto VC \ VC_OBJECTS_PLATFORM_INFO \ win32 \ Directories e ... \ x64 \ Directory.
Qualcuno ha già fatto questo e sa quale sia la mappatura dai nomi di proprietà usati in VCComponents.dat ai nomi da usare in un file .vsprops?
Mi piacerebbe che funzioni in VS2005, VS2008 e VS2010, idealmente.
In VS2010, Microsoft ha completamente eliminato la finestra di dialogo VC++ Directories in Opzioni di visualizzazione, creata per progetto, quindi ora si ottiene un'interfaccia utente interattiva per modificare queste directory in Proprietà progetto invece di Opzioni vista; questo significa anche che esiste un'interfaccia utente nel gestore proprietà; quindi se si desidera apportare modifiche per macchina anziché per progetto come una volta, basta impostare una finestra delle proprietà come desiderato e far sì che tutti i progetti vengano ereditati da esso. Questo suona come un grande miglioramento rispetto alla vecchia maniera. E un modo diretto per fare ciò che voglio fare. Ma solo in VS2010.
VS2005 e VS2008 non dispongono dell'interfaccia utente per impostare queste proprietà in un progetto o in una finestra delle proprietà; Sono felice di farlo a mano ma non so come dovrebbe essere!
Ecco un vuoto file VS 2005 .vsprops:
<?xml version="1.0"?>
<VisualStudioPropertySheet
ProjectType="Visual C++"
Version="8.00"
Name="pathSettings"
>
</VisualStudioPropertySheet>
ho installato VS 2010 e usato la sua ordinata nuova interfaccia grafica di apportare modifiche alle directory di ricerca; sembra che questo:
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ImportGroup Label="PropertySheets" />
<PropertyGroup>
<ExecutablePath>C:\Test;$(PATH)</ExecutablePath>
</PropertyGroup>
</Project>
Tuttavia, che non funziona testualmente in VS2005 - VS2005 rifiuta di caricarlo (lamentarsi è stata trovata alcuna dichiarazione DTD/schema).
L'ho scaricato nel contenitore, in risposta al quale VS2005 mi dice che "Element 'PropertyGroup" è inatteso in base al modello di contenuto dell'elemento padre' VisualStudioPropertySheet '. Previsto: Tool, UserMacro. " Tool e UserMacro sono le uniche cose mostrate nell'esempio nella pagina MSDN [drat - StackOverflow non mi permetterà come un nuovo utente di inserire qui un collegamento ipertestuale - il primo risultato di ricerca di Google per "strumento di foglio di proprietà usermacro"] - forse quelli sono le uniche cose legali in una scheda di proprietà VS2005?
Altri link: - Proprietà documentazione della scheda: http://msdn.microsoft.com/en-us/library/a4xbdz1e(VS.80).aspx - articolo sui cambiamenti di VS 2010: http://blogs.msdn.com/vsproject/archive/2009/07/07/vc-directories.aspx Quello che non so è cosa inserire in un file .vsprops (VS2005 o 2008) o .props (2010)) per ottenere la stessa funzione ottenuta modificando VCComponents.dat, per impostare o sovrascrivere le directory di ricerca percorso/include/libreria per ogni piattaforma di generazione. – metamatt
Questo sembra utile/rilevante (ancora in fase di elaborazione): http://stackoverflow.com/questions/142708/what-do-delimiter-and-inheritsfrom-tradutes-attributes-mean-in-vsprops-files – metamatt
OK, se solo Tool e UserMacro funziona lì, forse devo trovare il modo giusto per scavalcare il percorso di inclusione del compilatore e il percorso di inclusione del linker usando le direttive di Tool. Questo non aiuterà il percorso dell'eseguibile, però? – metamatt