Domanda

Abbiamo un progetto di installazione che attualmente aggiunge Progetto Output di diversi progetti di Visual Studio. Vogliamo cambiare il sistema di confezionamento e utilizzare una cartella con un gruppo di file di schieramento che vengono preparati per la distribuzione nel setup.
Ma questo significa che abbiamo bisogno di aggiungere i file uno per uno, e tenerli aggiungendo ogni versione quando ci sono nuovi file.
Ho visto in questo domanda che non possiamo aggiungere i file con le regole come * aspx.
Così sto pensando di creare un piccolo strumento che cambierà il file vdproj sulla base dei file disponibili. Mi potete aiutare con il formato di questo file? Sembra che ci sono alcuni GUID associati ad ogni file incluso.
Qualcuno ha una soluzione migliore su come fare questo?
Non stiamo pensando di utilizzare uno strumento di configurazione diversa a destra appena ancora, ci limitiamo a guardare per una soluzione semplice per il confezionamento file.

È stato utile?

Soluzione 2

Sembra non c'era una soluzione facile per questa domanda. Abbiamo finito per cambiare lo strumento di configurazione e l'utilizzo di Advanced Installer per creare il setup, ha una bella caratteristica che sincronizza i file all'interno di una cartella per la distribuzione.

Altri suggerimenti

Per aggiungere l'intera cartella, basta aprire una finestra di Esplora risorse, quindi trascinare tutti i file che si desidera aggiungere nella vista file system.

Abbiamo avuto questo stesso problema. Non è possibile trascinare / drop .. Ma si può andare ai contenuti desiderati in Esplora risorse, copiare gli elementi (che possono includere sottocartelle), per poi tornare a VS Installer e incollare questi (ad esempio la cartella dell'applicazione).

Nota. Se avete bisogno di creare cartelle personalizzate (ad esempio, c: \ html) è anche possibile utilizzare questo approccio, ma è necessario creare la cartella personalizzata prima nel riquadro di sinistra (specificando il percorso assoluto come il bersaglio), poi di nuovo andare al pannello di sinistra e pasta.

Questo metodo funziona per confezionare una serie di cartelle, ma non si sincronizza cartelle che possono avere contenuti diversi! Se i contenuti cambiano tra le distribuzioni è necessario ri-copia / incolla per ottenere il file di installazione per contenere tutto!

Potresti aggiungere tutti i file dalla cartella con una macro ??

Inoltre forse si può solo cancellare i file sul progetto di installazione (con una macro o add-in) e aggiungere i file nella cartella con lo stesso metodo ..

ho finalmente trovato una vera soluzione a questo problema. Quello che mi serviva è quello di aggiungere tutti i file in una determinata directory esterna, (che non fa parte del progetto), per il progetto di installazione in fase di compilazione, cioè se un file viene aggiunto alla directory esterni, sarà incluso automaticamente nel programma di installazione con la generazione successiva.

Quello che ho fatto è che ho creato un nuovo progetto nella soluzione (progetto Libreria di classi) e rimosso tutto da esso: Class1.cs AssemblyInfo.cs, e le relative ItemGroups del file che contiene elementi csproj <Compile> per i file di cui sopra e gli elementi <Reference> per la comprende.

Poi, ho aggiunto un nuovo ItemGroup:

<ItemGroup>
  <Content Include="Path\To\The\Directory\**\*.*">
    <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
  </Content>
</ItemGroup>

In questo modo, questo nuovo progetto non contiene alcun file, ma fa riferimento a tutti i file (in modo ricorsivo, indicato dalla \**\ dalla directory indicata) come File di contenuti .

Quindi, della corporatura, questi file vengono trattati come File di contenuti , quindi copiato nella directory di output del nuovo progetto.

Quindi, perché ho fatto tutto quanto sopra? Solo perché, Progetto di installazione ha un opzione per includere i File di contenuti da un altro progetto!

Quindi, in questo modo è possibile effettuare arbitrari file esterni "parte" della soluzione senza peraltro riuscire a quotazione, l'elenco dei file viene valutata in Il tempo di costruzione , per poi riferimento da un progetto di installazione .

Ho lo stesso problema. Anche se non è la soluzione ideale, una sola idea che ho avuto è quello di avere un file batch che comprime i file e poi il mio progetto di installazione solo distribuisce quel zip. Dopo di che, si avrebbe dovuto decomprimere loro dopo l'installazione.

In alternativa, si potrebbe scrivere una piccola applicazione per comprimerli in un unico file e decomprimerli quando l'applicazione viene eseguito per la prima volta. Fondamentalmente la stessa soluzione, tranne che si scrive da soli quindi nessun bisogno di utilizzare uno strumento di terze parti decomprimere e il processo di installazione è un po 'più pulito.

Credo realtà sto andando a fare la seconda soluzione per il mio progetto presto, perché io non sto guardando pagare le cifre esorbitanti per un app migliore installare solo ancora sia.

OH non è possibile drag and drop i file e le cartelle su directory di installazione di vs

I seguenti opere perfette: è sufficiente trascinare e rilasciare la cartella nella directory di installazione (utilizzare il Windows Explorer non la soluzione Explorer). Poi si aggiungerà tutti i file all'interno di esso e tutte le sottocartelle.

È possibile fare clic destro sulla cartella in Esplora risorse e scegliere Copia e quindi fare clic destro sulla cartella nella visualizzazione del file system nel progetto di installazione e fare clic su Incolla. Trascinamento non ha funzionato per me.

  1. È possibile fare clic destro all'interno della cartella (che deve essere copiato) in Windows Explorer e fare clic su Ctrl + A oppure selezionare tutti i file e fare clic su copia.
  2. In l'editor FileSystem, passare al lato sinistro. Quindi fare clic destro sulla cartella dell'applicazione e fare clic su Aggiungi e selezionare la cartella.
  3. Dare il nome alla cartella
  4. Nella parte destra dell'editor FileSystem, fare clic destro e selezionare Incolla
  5. Tutti i contenuti della cartella otterrà copiato nella cartella appena creata nel passaggio 2.

Per ulteriori informazioni, consultare seguente link https://dzone.com/articles/creating-msisetup-package-c

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top