Abbiamo un software chiavi in mano che rilasciamo ai clienti. Abbiamo creato un set di server per eseguire la porzione SaaS del server e per molti clienti abbiamo configurato terminali che consentono agli agenti di effettuare ordini per i clienti. Il software del terminale è un'app ClickOnce che viene eseguita sui terminali client. Un gruppo di questi client ha requisiti sempre diversi, quindi ho realizzato un altro progetto in cui quasi tutti i file in quel progetto si collegano (usando Aggiungi come) al progetto originale, e poi ho direttive del compilatore per stampare gli ordini su una stampante in modo diverso , ecc., nonché il file di progetto con un GUID di progetto diverso e altre cose.
Ovviamente non è la soluzione ideale. Tuttavia, dal momento che queste persone sono impostate su ClickOnce, e ciò fa la sua cosa basata sul GUID del progetto, non posso semplicemente scambiarle con il progetto del terminale "principale". Ora stiamo per aggiungere più persone a questo programma e stanno per utilizzare il software del terminale e voglio uscire da queste cattive pratiche.
Sarebbe FANTASTICO se potessi definire un "modello" che contenesse alcune cose, vale a dire il nome del progetto, la descrizione, le informazioni sul copyright, il GUID del progetto e i parametri per la pubblicazione di clickonce. Potrei dire "Sto usando il modello XYZ" e quindi caricare tutti i parametri nel progetto, sostituire i parametri AssemblyInfo.cs e prepararlo per ClickOnce senza dover premere i menu a discesa e trovare o incollare gli URL. Mi piacerebbe anche essere in grado di sostituire l'icona, se possibile. Un buon vantaggio è che potrei conservare una copia di ciascuna applicazione sulla mia macchina per un rapido test di uptime - poiché la maggior parte dei client viene rilasciata con lo stesso GUID (ad eccezione dell'altro gruppo), non riesco a installare il terminale di un altro client app sulla mia macchina senza prima disinstallare quella esistente!
Nella mia ricerca fino ad ora, ho bisogno di affrontare il problema semplicemente scambiando e inserendo materiale, o possibilmente un file di progetto (situato nella cartella 'principale') identico a quello principale ma con il informazioni scambiate. C'è un modo per farlo facilmente? Sento che potrebbe esserci un modo molto più facile / migliore per realizzare ciò che voglio fare.