aspnet_compiler no se compilará c # código colocado en el directorio de aplicaciones web
-
19-09-2019 - |
Pregunta
He estado usando derecho del ratón haga clic en Visual Studio para publicar sitios para las edades y todo funcionaba genial, excepto que ha habido demasiados trabajos manuales. Recientemente he cambiado a usar Creación de un script para llamar aspnet_compiler publicar aplicaciones web ASP.NET. En mi escritura de la estructura me gustaría hacer algo, como a continuación:
sh "#{aspnet_compiler} -p ../src/webapp -v targetDir ./publish –u"
Mi estructura de directorios del proyecto es el siguiente:
/build/rakefile.rb
/build/publish/ --published site goes here
/src/website/bll/ --business logic goes here
/src/website/ --aspx pages
/src/website/code/ --some c# code
Cuando se llama Red PEA-compilador todo funcionaba bien, excepto el código C # en / src / web / código / no serían compilados . Me parece que la Red PEA-compilador compilado código C # en el directorio BLL a continuación, xcopied todo bajo / src / web / en el directorio de publicar (incluyendo / src / web / código / ). No sé si yo no estoy usando el interruptor correcto llamar Red PEA-compilador o este es el comportamiento deseado?
Por favor ayuda gracias!
Solución
Me di cuenta de mi propio problema.
En primer lugar mi rastrillo escritura de la estructura termina pareciéndose a esto:
sh "#{aspnet_compiler} -f -fixednames -u -p ../src/website -v / ./publish"
En segundo lugar el comportamiento de salida del botón derecho del ratón haga clic en "publicar" dentro de Visual Studio es diferente de llamar aspnet_compiler.
Haga clic derecho en publicar voluntad:
- directamente copiar Global.asax
- sólo generan .dll y .pdb (archivo .pdb se puede eliminar si no es necesaria la depuración) ficheros en el directorio bin
donde al llamar aspnet_compiler:
- compilará en Global.asax App_global.asax.compiled y App_global.asax.dll en el directorio bin
- también generará PreCompiledApp.config (esto se debe a que he especificado páginas aspx deben ser actualizable)
No era una tarea de limpieza después de la publicación tarea que básicamente elimina otra cosa que no sea la extensión .dll bajo bin.
De todos modos ahora que he aprendido algo nuevo.
Otros consejos
he tenido problema similar cuando se utiliza aspnet_compiler en la máquina de construcción (utilicé MSBuild). La solución para mí era construir una solución antes de llamar aspnet_compiler. En MSBuild se ve algo como:
<MSBuild Projects="$(PhysicalPath)\solutionName.sln" Properties="Configuration=Debug"/>
También puede utilizar devenv solutionName.sln / construcción (si no se utiliza MSBuild).