2009-07-16 5 views
3

Est-il possible de spécifier la plate-forme cible (x64, x86) lors de la construction d'un projet?MSBuild: Problèmes de spécification de la plate-forme pour les constructions enfant

J'ai une tâche de construction qui se présente comme suit:

<MSBuild Projects="%(AgentProjectFiles.FullPath)" Properties="Architecture=x86;Configuration=$(Configuration);Optimize=$(Optimize);Platform=$(Platform);OutputPath=$(OutputDirectory)\Agent\;ReferencePath=$(ReferencePath);DebugSymbols=$(DebugSymbols);DebugType=none;" /> 

Comme vous pouvez le dire, je l'ai jeté tout son possible, je l'ai vu en ligne dans l'attribut Propriétés dans l'espoir que cela fonctionnera. Vous remarquerez que pour la propriété Architecture, j'ai défini explicitement x86. $ (Platform) est également défini sur x86. J'ai essayé un certain nombre de permutations, sans succès. Malheureusement, il semble que, peu importe ce que l'on met dans ces propriétés, mes bibliothèques de classes sont x86, mais mes exécutables sont x 64. J'ai pensé que peut-être le problème pourrait être que les propriétés de construction spécifiées dans le fichier de projet lui-même faisaient MSBuild d'ignorer ceux que je traverse à partir de MSBuild, mais après avoir changé en x86, j'ai toujours le même problème.

Des idées?

Répondre

3

Dans la déclaration des AgentProjectFiles point êtes-vous définir les propriétés métadonnées. Alors ça ressemble:

<ItemGroup> 
    <AgentProjectFiles Include="something.proj"> 
     <Properties>SOME VALUES HERE</Properties> 
    </AgentProjectFiles> 
</ItemGroup> 

Si vous avez défini les propriétés qui ensuite passé dans l'attribut Propriétés du MSBuild task sont ignorés. J'ai blogué à ce sujet MSBuild: Properties and AdditionalProperties Known Metadata.

Sayed Ibrahim Hashimi

Mon livre: Inside the Microsoft Build Engine : Using MSBuild and Team Foundation Build

+0

MERCI !!! (excusez les bouchons, mais je me suis cogné la tête contre le mur pendant quelques heures.) J'ai changé mon ItemGroup pour définir les propriétés comme vous l'avez fait ci-dessus, et mes assemblages sont maintenant créés pour la plate-forme correcte . – tardomatic

+0

Je ne crois pas vraiment que ce soit la vérité. Merci Sayed. –

Questions connexes