2009-10-13 12 views
2

J'ai un projet d'application Web C# dans Visual Studio 2008 que je souhaite précompiler pour le déploiement. Après avoir examiné les différentes options, il semble que tous ont quelques problèmes - peut-être quelqu'un pourrait donner leur avis sur ceci:Précompilation de l'application Web ASP.NET avec MSBuild

Le projet est sous le contrôle de la source et contient également beaucoup de fichiers qui sont exclus du projet.

Les projets de déploiement Web ne fonctionnent pas. Si j'essaie d'utiliser un wdp pour compiler, aspnet_compiler.exe essayera aussi de compiler tous les fichiers exclus. Je ne veux pas conserver une liste d'exclusion dans le script msbuild. Existe-t-il un moyen de dire à msbuild d'utiliser uniquement les fichiers/éléments spécifiés dans le fichier csproj, de les copier dans un dossier intermédiaire et de faire construire aspnet_complier.exe à partir de cette copie qui ne contient aucun des fichiers exclus ?

Le site Web a des dépendances à 3 autres fichiers csproj.

Merci!

+0

avez-vous obtenu aucun résultat à celui-ci? – Jon

Répondre

0

Quelle que soit la raison pour laquelle vous ne pouvez pas exécuter aspnet_compiler.exe dans le cadre de votre script de déploiement à la place?
Pourquoi les fichiers sont-ils s'ils ne sont pas utilisés?

Suggestion: Exécutez le compilateur sur le déploiement ou supprimer les fichiers

1

Vous pouvez faire des tâches MSBuild pour cacher (attrib + h) ou supprimer des fichiers indésirables ...

<PropertyGroup> 
    <MyLogFile>kaantologi.txt</MyLogFile> 
    <MyWebSourcePath>c:\sourecontrol\myweb</MyWebSourcePath> 
    <!-- *.tmp and .exclude and etc: --> 
    <MyCleaup> 
     attrib $(MyWebSourcePath)\*.tmp -r -s -h -a /s >>$(MyLogFile) 
     del $(MyWebSourcePath)\*.tmp /q /s >>$(MyLogFile) 
     attrib $(MyWebSourcePath)\*.exclude +h 
    </MyCleaup> 
    </PropertyGroup> 
    <Target Name="MyClean"> 
    <Exec Command="$(MyCleaup)" /> 
    </Target> 
    <Target Name="MyFinal"> 
    <Exec Command="attrib $(MyWebSourcePath)\*.exclude -h"/> 
    </Target> 
    <Target Name="MyBuild"> 
    <CallTarget Targets="MyClean" /> 
    <CallTarget Targets="MyCompile" /><!--...--> 
    <CallTarget Targets="MyFinal" /> 
    </Target> 

Ou vous pouvez utiliser un fichier de solution (.sln) et avez votre csproj là et construisez-le.

Ps. Pas exactement votre problème, mais cela pourrait aider (il est pour les sites web, et non pour les applications web):

Unable to publish using msbuild or aspnet_compiler using cc.net