2009-10-01 11 views
1

J'ai utilisé le clic droit de la souris dans Visual Studio pour publier des sites depuis longtemps et tout a bien fonctionné, sauf qu'il y a eu trop de travaux manuels. Récemment j'ai changé en utilisant le script de construction pour appeler aspnet_compiler pour publier l'application web ASP.NET. Dans mon script de compilation que je ferais quelque chose comme ci-dessous:aspnet_compiler ne compilera pas le code C# placé sous le répertoire de l'application web

sh "#{aspnet_compiler} -p ../src/webapp -v targetDir ./publish –u" 

Ma structure de répertoire du projet ressemble à ceci:

/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 

Lorsque vous appelez tout aspnet compilateur a bien fonctionné, sauf le code C# sous /src/site/code/ne serait pas compilé. Il me semble que aspnet-compiler compilé C# code sous le répertoire bll puis xcopied tout sous/src/site/ dans le répertoire de publication (y compris/src/site/code /). Je ne sais pas si je n'utilise pas le bon commutateur appelant aspnet-compiler ou c'est le comportement souhaité?

S'il vous plaît aider grâce!

Répondre

2

J'ai trouvé mon propre problème.

tout d'abord mon râteau construire finissent par ressembler à ce script:

sh "#{aspnet_compiler} -f -fixednames -u -p ../src/website -v/./publish" 

deuxième le comportement de sortie de la souris clic droit sur « publier » dans Visual Studio est différent de l'appel aspnet_compiler.

clic droit Publish:

  • copie directement Global.asax
  • ne génèrent que .dll et pdb (fichier pdb peut être supprimé si le débogage est nécessaire) des fichiers sous bin directory

où lors de l'appel aspnet_compiler:

  • compilera Global.asax dans App_global.asax.compiled et App_global.asax.dll sous le répertoire bin
  • également générer PreCompiledApp.config (ce qui est parce que je l'ai spécifié pages ASPX doit être mis à jour)

Il y avait une tâche de nettoyage après la publication de la tâche qui supprimait fondamentalement autre chose que l'extension .dll sous bin.

De toute façon maintenant j'ai appris quelque chose de nouveau.

+0

référence à aspnet_compiler http://msdn.microsoft.com/fr-fr/library/ms229863%28VS.80%29.aspx – Jeff

1

J'ai rencontré un problème similaire lors de l'utilisation de aspnet_compiler sur une machine de construction (j'ai utilisé MSBuild). La solution pour moi était de construire une solution avant d'appeler aspnet_compiler. En MSBuild il ressemble à quelque chose comme:

<MSBuild Projects="$(PhysicalPath)\solutionName.sln" Properties="Configuration=Debug"/> 

Vous pouvez également utiliser devenv solutionName.sln/build (sinon en utilisant MSBuild).

Questions connexes