none
Comment écraser la propriété AdditionalLibraryDirectories à la tâche Link de MSBuild 4.0 RRS feed

  • Discussion générale

  • Bonjour,

    J'ai plusieurs projets C++ ( .vcxproj) que je souhaite compiler.

    Je veux que mon script de compilation utilise le même AdditionalLibraryDirectories pour tous ces projets, même si dans les fichiers vcxproj, ils en ont des différents.

    J'ai un fichier "compile.targets" qui appelle une tâche MSBuild pour compiler chaque vcxproj.

    En résumé:

      <Target Name="CompileMyProject">
        <MSBuild
          Condition=" des conditions "
          Projects="@(MyProjectAndItsDependentProjects)"
          Properties="UseEnv=True; et bien d'autres..."
          Targets="Build"
          ToolsVersion="4.0"
        />
      </Target>

    Dans le "monprojet.vcxproj", généré par VisualStudio2010, il y a l'arborescence suivante:
    <Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
      <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
        <Link>
          <AdditionalLibraryDirectories>Chemin1</AdditionalLibraryDirectories>


    Dans mon fichier "compile.targets", y'a-t-il une possibilité pour forcer que la compilation utilise un autre Chemin2 à la place de Chemin1 ?
    Y'a-t-il une autre solution ?  (des fichiers .props peut-être, mais comment les intégrer? )

    Merci d'avance,

    RaphDev.

    vendredi 15 juin 2012 17:03

Toutes les réponses

  • Bonjour,

    Avez vous essayé de spécifier la propriété AdditionalLibraryDirectories dans la propriété "Properties" dans la tâche MSBuild :

      <Target Name="CompileMyProject">
         <MSBuild
           Condition=" des conditions "
           Projects="@(MyProjectAndItsDependentProjects)"
           Properties="AdditionalLibraryDirectories=<Votre chemin>;...."
           Targets="Build"
           ToolsVersion="4.0"
         />
       </Target>

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte logiciel/Consultant/Formateur Freelance
    Blog : http://gilles.tourreau.fr
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0

    samedi 16 juin 2012 23:17
    Modérateur
  • Bonjour,

    Merci pour votre réponse.

    Oui j'ai déjà tenté, hélas, sans succès.

    Cordialement,

    RaphDev.

    lundi 18 juin 2012 06:33
  • Re Bonjour,

    Une autre solution ou idée?
    Par exemple:
    Y'a-t-il un équivalent des overrides comme VCBuild en avait?

    Merci,

    RaphDev.

    jeudi 21 juin 2012 14:13
  • je crois qu'ils sont tous mort ou en vacance, pas une raiponce depuis lundi.

    dsl je peut pas t'aider

    Cordialement

    vendredi 22 juin 2012 06:19
  • Désolé, travail, on est des bénévoles. ;-)

    De manière logique, c'est AdditionalLibraryDirectories du projet qui devrait utiliser une propriété, qui elle devrait être "overridable".

    Mais j'ai du mal à voir dans quel cas cela serait utile.


    Paul Bacelar, Ex - MVP VC++

    jeudi 28 juin 2012 09:19
    Modérateur