2015-06-04 11 views
7

Ho una soluzione in edizione 2013 VS Community, un progetto di installazione recentemente aggiunto con Installshield in edizione limitata.Installati in edizione limitata per i file .Net framework e il programma non in esecuzione senza Visual Studio

Quando ho ri-creare la soluzione (On modalità di rilascio x64) il progetto installshield mi mette in guardia circa i seguenti file:

Warning -6245: One or more of the project's components contain .NET properties that require the .NET Framework. It is recommended that the release include the .NET Framework. 16 ISEXP : warning : -6245: One or more of the project's components contain .NET properties that require the .NET Framework. It is recommended that the release include the .NET Framework. 

Warning -6248: Could not find dependent file Microsoft.ServiceBus, or one of its dependencies of component PLATOS.Primary_output 18 ISEXP : warning : -6248: Could not find dependent file Microsoft.ServiceBus, or one of its dependencies of component PLATOS.Primary_output 

Warning -6248: Could not find dependent file Microsoft.VisualStudio.CodeMarkers.dll, or one of its dependencies of component PLATOS.Primary_output 19 ISEXP : warning : -6248: Could not find dependent file Microsoft.VisualStudio.CodeMarkers.dll, or one of its dependencies of component PLATOS.Primary_output 

Warning -6248: Could not find dependent file Newtonsoft.Json, or one of its dependencies of component PLATOS.Primary_output 20 ISEXP : warning : -6248: Could not find dependent file Newtonsoft.Json, or one of its dependencies of component PLATOS.Primary_output 

Warning -6248: Could not find dependent file System.Data.SQLite, or one of its dependencies of component PLATOS.Primary_output 21 ISEXP : warning : -6248: Could not find dependent file System.Data.SQLite, or one of its dependencies of component PLATOS.Primary_output 

Warning -6248: Could not find dependent file System.Net.Http.Formatting, or one of its dependencies of component PLATOS.Primary_output 22 ISEXP : warning : -6248: Could not find dependent file System.Net.Http.Formatting, or one of its dependencies of component PLATOS.Primary_output 

Warning -6248: Could not find dependent file System.Web.Http, or one of its dependencies of component PLATOS.Primary_output 23 ISEXP : warning : -6248: Could not find dependent file System.Web.Http, or one of its dependencies of component PLATOS.Primary_output 

Sulla configurazione wizzard InstallShield ho selezionato che il setup cerca .Net 4.5. quindi non capisco quegli avvertimenti.

Quando installo il software con l'installazione in un computer in cui non è installato Visual Studio (ma ha l'ultimo framework Net (4.5.2)), il programma si apre (lo vedo nel task manager) e si chiude senza mostrare la GUI. Inoltre, quando copio la cartella \bin\release su un computer senza Visual Studio, il programma non verrà eseguito.

La mia ipotesi è che in qualche modo il programma richieda i file che installshield mi avvisa, ma questi file non dovrebbero essere già installati da .Net 4.5?

Ho visto altri thread in cui il problema viene risolto compilando in modalità di rilascio, ma lo sto già facendo, quindi non ho idea di cosa potrebbe essere sbagliato.

Qualsiasi aiuto è apprezzato.

+0

Il progetto principale è un oggetto WebForms roject; MVC; eccetera...? – johnjps111

+0

PS, se hai già utilizzato il programma di installazione di Visual Studio, è ancora disponibile ma deve essere installato separatamente: https://visualstudiogallery.msdn.microsoft.com/9abe329c-9bba-44a1-be59-0fbf6151054d; chissà, forse questo risolverebbe il problema in un modo completamente diverso. – johnjps111

+0

Ciao ho cambiato il programma di installazione al programma di installazione di Visual Studio e il problema persiste. solo che ora, lancia un file non trovato eccezione. –

risposta

0

Bene, dopo molto tempo ho trovato il problema.

Prima di tutto e, per sicurezza, installare tutte le dipendenze utilizzando il gestore NuGet. (Quando possibile)

Quindi come nel mio caso ho avuto C++ con C++ CLI e utilizzo VS 2013, installare Visual C++ Redistributable Packages for Visual Studio 2013 manualmente.

Ciò ha reso il programma eseguibile correttamente su una nuova finestra formattata 7.

0

Il programma sembra fare riferimento all'assembly Microsoft.VisualStudio.CodeMarkers, che, come suggerisce il nome, non è distribuito nel framework .Net, ma con Visual Studio.

Nella soluzione, è possibile verificare i riferimenti del progetto aprendo la cartella "Riferimenti". Rimuovi Microsoft.VisualStudio.CodeMarkers, crea il tuo progetto, vedi quali pause. Fare clic con il tasto destro su questo riferimento, selezionare "Proprietà" e nel riquadro delle proprietà, nel campo "Copia locale", selezionare "Vero". Fai lo stesso per Microsoft.ServiceBus.

Inoltre, assicurarsi che i pacchetti di nuget (come Newtonsoft.Json) siano inclusi per la distribuzione nel programma di installazione InstallShield.

+0

Sulla stessa scheda "riferimenti" menzionata, c'è un pulsante per mostrare i riferimenti inutilizzati e rimuoverli; è buona pratica farlo anche tu. – johnjps111

+0

No, non c'è (o non l'ho trovato con VS2013). Sono abbastanza sicuro che questa è una funzionalità aggiunta da un componente aggiuntivo come Resharper o JustCode. – thomasb

+0

Ho ricontrollato e "Microsoft.VisualStudio.CodeMarkers" non è nei riferimenti dell'applicazione, ma forse è su alcune delle librerie che ho usato su di esso. Dove vedo l'albero delle dipendenze completo? –

0

Si prega di inviare la sceneggiatura di installazione e io ti aiuterò. Abbiamo bisogno di sapere se questa soluzione è mai stata realizzata con successo su QUALSIASI macchina prima di risolvere il problema se il tuo installshield LE è corrotto, generare file errati, chiamare dll errate o instabilità da qualche parte.

Se la soluzione non ha mai lasciato questo sistema e in un certo punto è stata completata correttamente, è possibile che vi siano file legittimi nel contenitore, ma la cartella temp nella cartella MS .Net Framework contenente i file errati (ma lasciateci non andare ancora lì).

lei ha citato si è in versione già, in modo da alcune domande:

(1) È stato soluzione tirato da un altro computer con installato Windows Visual Studio SDK?

(2) Questa soluzione è stata originariamente creata con il generatore di riga di comando?

(3) Se la soluzione è stata spostata, erano presenti altri pacchetti che si sono lamentati al momento del ripristino ma non si trovavano nell'elenco degli errori sopra riportato? (Potrebbe essere visualizzato in uscita solo per esempio).

(4) Quando si utilizza l'interfaccia utente di Installshield, vengono visualizzate eventuali dipendenze mancanti?

Assicurarsi di aver completato il passaggio dei pacchetti di ripristino quando è stata caricata la soluzione.

Si consiglia di installare l'SDK di Visual Studio per vedere se si ottengono più indizi o si restringe il problema.

Per chiarire, il controllo degli errori di pacchetto ripristinati E l'installazione dell'SDK sono passaggi importanti per la risoluzione dei problemi basati su ciò che ci hai detto fino ad ora.

Il prossimo passo logico è quello di confermare le dipendenze dalla scansione al momento della compilazione e/o qualsiasi pacchetto che è stato ripristinato sono opportunamente referenziati in modo da poter restringere questo lungo elenco di pacchetti lamentati (che confonde la questione IMHO).

Quasi non mi piace menzionare questo perché è più una soluzione che dipende dal fatto che tu abbia mai avuto una build di successo su questo sistema, ma se la situazione peggiora peggiora, puoi utilizzare l'UI di Installshield per aggiungere l'ultima DLL in la tua cartella obj \ Release e ricostruisci.

La versione a pagamento aveva un progetto di esempio completamente funzionante, ma non ho usato installshield in un paio di anni.

+0

Ciao, grazie per la risposta. Ho avuto diverse build di successo (in realtà centinaia), e ho distribuito il software ai colleghi che lo usano, ma per il requisito che installano VS, perché altrimenti non funzionerà. Sulle altre domande ho sviluppato la soluzione utilizzando VS 2012 e la successiva edizione della community 2013, spesso collaborativa con altri colleghi che utilizzano SVN. –

+0

OK, allora dovresti creare un punto di ripristino, installare l'SDK di Visual Studio, riavviare, aprire la soluzione e controllare se eventuali errori scompaiono dopo il ripristino di qualsiasi pacchetto. NON modificare le impostazioni di compilazione o disabilitare le notifiche di compilazione, ecc.Quindi aprire la cartella temp nella cartella MS .Net Framework. Quindi ricostruire. Installshield è noto per la ricerca di DLL meno recenti e non si desidera ottenere una build contaminata. Fammi sapere come funziona, perché se peggiora la situazione, puoi provare a fare riferimento all'ultima DLL valida conosciuta dalla tua cartella obj \ Release nell'UI di Installshield in seguito. – miniscule

+0

Giusto per chiarire, stiamo seguendo questo percorso di risoluzione dei problemi con l'installazione di Visual Studio SDK prima perché stiamo cercando di restringere questo logicamente. Provare la soluzione alternativa di fare riferimento all'ultima DLL valida tramite la cartella obj \ Release è l'ultima risorsa, quindi è necessario concentrarsi su ciò che l'interfaccia utente di Installshield mostra in "Dipendenze dalla scansione alla build" (nel caso si abbiano nuovi errori) . Non vogliamo che la tua build abbia qualche fine in sospeso perché non vuoi finire nella stessa barca in seguito se dovessi importare in una versione successiva di Visual Studio. – miniscule