2009-09-01 2 views
19

Stiamo creando un'applicazione in grado di comprendere alcuni parametri della riga di comando. Ci sono alcune impostazioni predefinite che vorremmo fornire sulla linea di comando durante il debug e queste sono facilmente impostate nelle impostazioni del progetto as explained here.Perché le impostazioni della riga di comando di un progetto di Visual Studio sono memorizzate per utente? È corretto effettuare il check-in (e condividere) un file di impostazione .user?

Il fatto è che Visual Studio memorizza queste impostazioni in * .csproj. utente e le impostazioni predefinite per il controllo sorgente integrato non eseguono il check-in *. file utente. Vorremmo avere questi parametri di default della riga di comando nell'IDE di tutti quando eseguiremo il debug di questo progetto.

Spesso (ma non sempre) quando studio visivo ti guida nel fare le cose in un certo modo è per una buona ragione. Probabilmente non vogliamo semplicemente effettuare il check-in di qualcuno .csproj. utente file ... giusto?

Questa domanda è ha alcune parti:

  • Perché visivo negozio Studio questo particolare impostazione per utente?
  • C'è un modo per modificare questo comportamento? - Lo farebbe portare cattivo juju?
  • In queste circostanze è OK effettuare il check-in e condividere un file .user?
  • C'è un modo migliore per realizzare quello che stiamo cercando di fare ?

Thank you -

+1

Sette anni più tardi, funziona ancora allo stesso modo. Mentre la maggior parte delle proprietà del progetto sono memorizzate nel file '* .vcxproj', gli argomenti del comando del debugger locale sono memorizzati in' * .vcxproj.user'. Dai punti Microsoft per coerenza. –

risposta

9

Forse potresti modificare il programma in modo da leggere i suoi parametri facoltativamente da un file di configurazione e dalla riga di comando (e quindi effettuare il check-in di una copia di tale file di configurazione).

+0

Buon punto. Questo soddisfa lo stesso bisogno e aggira il problema. – DanO

+2

Mettere le opzioni di riga di comando di debug predefinite in un file .config evita il problema ma impone anche un nuovo comportamento che potrebbe non essere voluto (possiamo convivere con questo in questo caso) In generale, ora vedo che basandosi su i parametri di riga di comando di debug predefiniti in tutto il team e nel controllo del codice sorgente sono una cosa negativa. Aggiunge rughe alle build (auto) CI e ai test unitari. Stiamo effettivamente rendendo i parametri di "debug" in un artefatto sorgente ... non va bene. Quindi, in generale, la risposta migliore è: "Non farlo - trova un altro modo" e in questo caso un file .config va bene. Grazie. – DanO

4

io non consiglierei il check-in del file utente perché, come lei ha detto, questo è per utente. Se qualcuno controlla il tuo file utente "predefinito" e poi apporta modifiche personalizzate alla configurazione, queste verranno riflesse nel file dell'utente e (molto probabilmente) si rifletteranno nel controllo sorgente.

Se si desidera che qualcuno imposti i parametri della riga di comando per il debug, regolare il file di progetto per includerli, non includerli nel file utente. (Va bene per controllare il file .proj, e in genere lo faccio per i progetti del mio team.)

+0

Ho visto alcuni sviluppatori molto confusi che non si rendevano conto che il file .user era nel controllo del codice sorgente (o non sapeva a cosa servisse). –

+0

Quindi se "unisci" manualmente l'xml che fornisce i parametri della riga di comando nel file delle impostazioni .user con il file di progetto principale ... farà quello che spero ... o semplicemente manomettere le cose? – DanO

+1

@ Jason: Come regoleresti il ​​file di progetto in modo che contenga i parametri della riga di comando? – sbi