2009-09-25 8 views
4

J'utilise la ligne de commande pour appeler MSBuild pour générer une version publiée d'un site web en utilisant cette commande:MSBuild publier site avec des ressources intégrées

msbuild.exe /t:ResolveReferences;Compile;_CopyWebApplication /p:OutDir=dir/bin/ 
    /p:WebProjectOutputDir=dir/ /p:Debug=false /p:Configuration=Release 
    Website.csproj 

Cela fonctionne bien autre que les ressources incorporées ne pas être présent dans le Website.dll. Si je fais la publication via Visual Studio, il inclut les ressources incorporées. Y a-t-il un drapeau qui me manque?

Répondre

4

Il semble

/t:PrepareResources 

appelle toutes les cibles que vous avez ajouté à votre appel msbuild, essayez que

Heres le top quelques niveaux de ce qu'on appelle

PrepareResources 
    PrepareResourceNames 
     AssignTargetPaths 
     SplitResourcesByCulture 
     CreateManifestResourceNames 
     CreateCustomManifestResourceNames 
    ResGen 
     ResolveAssemblyReferences 
     SplitResourcesByCulture 
     BeforeResGen 
     CoreResGen 
     AfterResGen 
    CompileLicxFiles 
4

Un objectif supplémentaire est nécessaire comme ceci:

msbuild.exe /t:PrepareResources;ResolveReferences;Compile;_CopyWebApplication 
    /p:OutDir=dir/bin/ /p:WebProjectOutputDir=dir/ /p:Debug=false 
    /p:Configuration=Release Website.csproj 
+0

Comment avez-vous résolu le problème? Avez-vous capturé la sortie de construction VS? Comment? –

+0

J'ai fait VS produire le processus de construction "Détaillé": Outils> Options> Projets et Solutions> Construire et Exécuter> MSBuild projet de construction de sortie verbosité. Ensuite, j'ai regardé toutes les cibles liées aux ressources et je l'ai ajouté. J'ai trouvé que plus d'un argument semble être requis maintenant. J'ai mis à jour la réponse ci-dessus. –

+0

sont-ils tous appelés à partir d'une seule cible sous le .csproj? Vous pouvez appeler une cible abstraite à la place de toutes les cibles individuelles –

Questions connexes