2012-10-04 4 views
9

Ho progetto VS 2012 con struttura come questa:uscita nella cartella specifica, mentre la costruzione del progetto

Project 
    Folder1 
     file.xml 
     schema.xsd 
     code.cs 
    Folder2 
     code1.cs 
     code2.cs 

ho impostato Copy to output directory proprietà di file.xml e schema.xsd-Copy always e voglio loro uscita nella stessa cartella in cui le assemblee output (bin\Debug) ma sono sempre stati copiati nella cartella bin\Debug\Folder1. C'è un modo per raggiungere il mio obiettivo senza spostare i file alla radice del progetto?

+1

Non ho una risposta, ma io ho la stessa domanda per VS 2010. – Bobson

risposta

16

Si consiglia di farlo con uno script di evento Post-costruito. Non è così frenetico come sembra, e ti dà un sacco di flessibilità.

  • Fare clic con il tasto destro del mouse sul progetto e selezionare Proprietà.
  • Vai alla schedaEventi di compilazione e fare clic su Modifica post-generazione ...

(Visualizza gli screenshot qui sotto)

Ora è possibile specificare shell comandi da eseguire dopo ogni generazione di successo del tuo progetto. Di seguito raggiunge l'esempio della tua domanda:

copy "$(ProjectDir)Folder1\file.xml" "$(TargetDir)" 
copy "$(ProjectDir)Folder1\schema.xsd" "$(TargetDir)" 

$(ProjectDir) e $(TargetDir) sono macro che si inseriscono i rispettivi valori rilevanti per il vostro progetto. È possibile selezionare e inserire macro dal menu macro nella finestra di modifica.

Le virgolette sono incluse sopra, perché il tuo ProjectDir e TargetDir potrebbe risolvere a percorsi completi che includono spazi e che interromperà il comando copy se gli spazi non ci sono.

Opening Porject Properties

Editing Post Build