2011-12-26 16 views
7

Utilizzo Visual Studio 2010 con la nuova finestra di dialogo di pubblicazione del sito Web. Ho un sito Web di applicazioni Web. Una volta pubblicato, in teoria dovrebbe compilare tutto il codice in un unico assembly. Tuttavia, sia in Debug e Release, dopo la pubblicazione della directory contiene sempre il codice sorgente della pagina e controlli utente (anche con i file web.config non trasformati Web.Debug.config e Web.Release.Config). Questo è molto confuso.Perché Visual Studio 2010 pubblica il sito Web con il codice sorgente?

Ma con la configurazione del progetto package/publish web e la voce del menu di scelta rapida Generate Deploy package, la directory Package \ PackageTmp è pulita.

  • Perché Visual Studio non utilizza questo pacchetto per pubblicare il sito Web?
  • Dov'è l'opzione di precompilazione?
  • La trasformazione di Web.config xml sembra non funzionare, perché Visual Studio offre questa funzionalità per confondermi?
+0

Si tratta di un'applicazione web o un sito web? Vedete solo i file '.as? X' o anche i file' .cs'? – SLaks

+0

@SLaks Sono sicuro che è Web Application non sito Web. Ho già risolto, solo perché ho impostato 'Includi tutti i file di progetto' nella configurazione' Package/Publish web' –

+0

hi @RocHo anche io ho lo stesso problema ma la cosa è sto pubblicando il SITO WEB e non l'applicazione web in VS2013 Professional Edition. Quando lo pubblico, pubblicherò anche il CODICE SORGENTE e non jst i binari/dll. Quindi, per favore, mi suggerisca qualsiasi soluzione per pubblicare file solo in file .aspx/.dll? –

risposta

11

La risposta corretta è cercare nelle impostazioni del pacchetto/pubblica Web (nelle proprietà del progetto dell'applicazione Web) e cercare gli "Elementi da distribuire".

enter image description here

Per un'applicazione web che ci si vuole "Elementi per la distribuzione" di avere "solo i file necessari per eseguire questa applicazione" che non copiare i file di codice sorgente, dal momento che sono stati compilati nel DLL nella cartella bin.

Nota che questa impostazione varia per il vostro attuale tipo di costruzione (Debug/Release/etc), quindi attrezzatevi di conseguenza ...

Ciao!

+0

ciao @ enorl76 per favore suggerirmi qualche soluzione per il commento sopra? aiuto apprezzato! Ho provato la tua soluzione ma sfortunatamente non sono riuscito a trovare questa opzione nella versione professionale VS 2013. :( –

+0

@SHEKHARSHETE ho VS 2013, e ho appena guardato ed è lo stesso Forse stai provando ad usare un tipo di progetto diverso? Devi usare un tipo di progetto di applicazione Web. – enorl76

2

È necessario comprendere le differenze tra Web Application Projects versus Web Site Projects.

Per distribuire un progetto di applicazione Web, di copiare l'assembly che è creato da compilazione del progetto a un server IIS. Al contrario, per distribuire un progetto di sito Web, in genere si copiano i file di origine del progetto su un server IIS.

Per i progetti di applicazioni Web, in genere si crea il progetto in Visual Studio o si utilizza il compilatore batch ASP.NET su un computer che non è il server IIS di produzione. Tutti i file di classe code-behind e i file di classe standalone nel progetto sono compilati in un unico assembly , che viene quindi inserito nella cartella Bin del progetto dell'applicazione Web. (Il file ascx aspx e sono compilati in modo dinamico in un modo simile a quanto viene fatto per i progetti del sito Web.)

Per i progetti del sito web, non c'è bisogno di compilare manualmente il progetto . I progetti di siti Web vengono in genere compilati in modo dinamico da ASP.NET (sia sul computer di sviluppo che sul server IIS di produzione). È possibile scegliere tra la modalità di compilazione batch, che in genere produce un assembly per cartella e la compilazione fissa in modalità , che in genere produce un assembly per ogni pagina o il controllo utente .

0

In Visual Studio 2013/2015, selezionare un'opzione "Precompile durante la pubblicazione" enter image description here

Problemi correlati