Resumé

Copiare Files dopo la Compilazione in Visual Studio

Cristian Merighi () 0,00

Come copiare files tra progetti utilizzando MSBuild.
Questo articolo è da considerarsi obsoleto. Alcune funzionalità potrebbero non essere più disponibili e non è possibile aggiungere commenti.

Un «quickie» su come sfruttare Visual Studio (e MSBuild) per trasferire files dopo la compilazione di un progetto.

Per fare ciò è necessario modificare la struttura file di progetto. Come? Penso sia già noto a parecchi, in ogni caso rinfreschiamo nozioni probabilmente già acquisite:

VS2010
  1. Tasto destro sul nome del progetto in questione (quello che contiene i files da trasferire).
  2. Selezionare la voce Unload Project.
  3. Nuovamente tasto destro sul nome del progetto (etichettato ora come unavailable).
  4. Selezionare la voce Edit [Nome_Progetto].[cs|vb]proj.

Vi trovate di fronte ad un file xml con un nodo radice Project (o, per essere più rigorosi {http://schemas.microsoft.com/developer/msbuild/2003{Project}}).
Aggiungete a tale nodo il blocco di markup riportato qui sotto:

Markup
  1. <PropertyGroup>
  2.     <ScriptsDestinationDirectory>E:\Components\Pacem 5\Pacem.TestWebsite\Scripts</ScriptsDestinationDirectory>
  3.     <ScriptsSourceDirectory>Client</ScriptsSourceDirectory>
  4.   </PropertyGroup>
  5.   <Target Name="AfterBuild">
  6.     <CreateItem Include="$(ScriptsSourceDirectory)\**\*.*">
  7.       <Output TaskParameter="Include" ItemName="ScriptsFilesToCopy" />
  8.     </CreateItem>
  9.     <Copy SourceFiles="@(ScriptsFilesToCopy)" DestinationFiles="@(ScriptsFilesToCopy->'$(ScriptsDestinationDirectory)\%(RecursiveDir)%(Filename)%(Extension)')" />
  10.   </Target>

Da evidenziare nel blocco riportato sono:

  • Il nodo PropertyGroup dove definiamo le variabili coinvolte, in questo caso ScriptsDestinationDirectory (percorso fisico della cartella di destinazione) e ScriptsSourceDirectory (percorso relativo della cartella sorgente appartenente al progetto, in questo caso la cartella con nome "Client").
  • Il nodo Target @Name="AfterBuild", dove incorporiamo con una serie di riferimenti un Output Element.
  • L'esecuzione del trasferimento è poi descritta nel nodo Copy.

Spero possa essere stata una lettura utile...

Update

È possibile ottenere risultati simili utilizzando - nel pannello delle proprietà del progetto - la command-line per il Post-build del progetto stesso.

VS Project Properties

La sintassi per tale comando è il seguente (nell'esempio sono filtrati ricorsivamente i soli files con estensione .js):

xcopy "$(ProjectDir)\Client\*.js" "$(SolutionDir)\Pacem.TestWebsite\Scripts\" /s /i /y

Take care. Bye.

Feedbacks

  • Re: Transfer Files After Project Build in Visual Studio

    Alberto Dallagiacoma lunedì 2 aprile 2012 0,00

    Why don't you use a Post Build script? It's simpler... :-)

  • Re: Transfer Files After Project Build in Visual Studio

    Cristian Merighi lunedì 2 aprile 2012 0,00

    my first option, I'll update it by adding the cmd line version! :)

feedback
 

Syndicate

Autore

Cristian Merighi facebook twitter google+ youtube

Ultimi articoli

Top rated

Archivio

Dove sono?

Autore

Cristian Merighi facebook twitter google+ youtube

Le mie letture

Feeds