Un metodo alternativo consiste semplicemente nel lasciare gli elementi come tipo None
. In Esplora soluzioni, fai clic su quelli che desideri distribuire e imposta la Content
proprietà True
.
Nota: l'ho fatto in VS2019 e le cose possono cambiare da versione a versione.
Per farlo funzionare, ora fai clic con il pulsante destro del mouse sul tuo progetto e seleziona "Scarica progetto". Quindi fare clic con il tasto destro sul progetto scaricato e selezionare "Modifica nome_progetto.vcxproj".
Nell'editor, vai fino in fondo al file e inserisci questo target subito prima del </Project>
tag finale :
<Target Name="CopyContent" AfterTargets="Build">
<Copy SourceFiles="@(None)" Condition="'%(None.DeploymentContent)' == 'true'" DestinationFolder="$(OutputPath)" ContinueOnError="true" />
</Target>
Ora fai clic con il tasto destro sul progetto scaricato e seleziona "Ricarica progetto". Selezionare per salvare e chiudere se richiesto.
Ho anche impostato OutputDirectory
su:
$(SolutionDir)bin\$(Configuration)\$(Platform)\
e IntermediateDirectory
a:
$(SolutionDir)obj\$(Configuration)\$(ProjectName)\$(Platform)\
nella pagina Generale delle proprietà del progetto. Questo mette l'output in una cartella "bin" e gli intermedi in una cartella "obj" nella radice della soluzione.
Nota: $(SolutionDir)
non è definito quando si esegue MSBuild dalla riga di comando. C'è un trucco che puoi usare per definirlo nella cartella in cui risiede il file .sln usando GetDirectoryNameOfFileAbove. (a sinistra come esercizio per il lettore). Inoltre, sembra che nel 2019 lo stiano gestendo correttamente sulla riga di comando comunque. Sì :) Il $(SolutionDir)
contiene una barra rovesciata finale, quindi nessuno dopo di esso. I risultati di ciascuno devono avere una barra rovesciata finale.
Ora, se possiedi Pro o versioni successive, per favore non farlo ogni volta che devi creare un progetto. Sarebbe noioso. Invece, una volta che hai configurato il tuo progetto come preferisci, seleziona Project -> Export Template
. Gli dai un nome e la prossima volta che vuoi creare un progetto proprio come quello, scegli quel nome nella finestra di dialogo Nuovo progetto. (Nella versione precedente, penso che fosse Files -> Export Teamplate...
.)