Partage
  • Partager sur Facebook
  • Partager sur Twitter

[C#] Equivalent à #include, ou precompile event

    25 juillet 2011 à 10:02:36

    Bonjour,

    J'ai besoin de copier un paté de code dans la plupart de mes fichiers, et de pouvoir le maintenir à jour.
    Pour le moment, j'ai vite fait un programme pour cela, mais je n'ai pas trouver comment le lancer autrement que en pre-build, donc post-compile, ce qui m'oblige à lancer le build deux fois pour compiler correctement.

    D'où ma question, y a-t-il un équivalent à #include du C, ou existe-t-il un moyen de lancer mon prog avant l'étape de compilation ?

    Merci
    • Partager sur Facebook
    • Partager sur Twitter
      25 juillet 2011 à 11:15:56

      Citation : Spaz

      J'ai besoin de copier un paté de code dans la plupart de mes fichiers, et de pouvoir le maintenir à jour.


      Pas très classe ça. .NET n'a pas été pensé pour permettre ce genre d'action car tu n'en as généralement pas besoin. Si tu en as besoin, c'est que ton architecture logicielle est mal pensée; il faudrait la revoir (ton code "copié-collé" trouverait surement sa place dans un singleton et peut être dans une autre couche de ton logiciel par exemple...).

      Citation : Spaz

      D'où ma question, y a-t-il un équivalent à #include du C, ou existe-t-il un moyen de lancer mon prog avant l'étape de compilation ?


      Pas que je sache. Dans les "Propriétés > Evènements de build" du projet, tu peux exécuter des commandes batch avant ou après la compilation...En dehors de ça, je ne vois pas trop.
      • Partager sur Facebook
      • Partager sur Twitter
        25 juillet 2011 à 11:21:17

        Citation : Nisnor

        Citation : Spaz

        J'ai besoin de copier un paté de code dans la plupart de mes fichiers, et de pouvoir le maintenir à jour.


        Pas très classe ça. .NET n'a pas été pensé pour permettre ce genre d'action car tu n'en as généralement pas besoin. Si tu en as besoin, c'est que ton architecture logicielle est mal pensée; il faudrait la revoir (ton code "copié-collé" trouverait surement sa place dans un singleton et peut être dans une autre couche de ton logiciel par exemple...).


        Je copie des Using. Plus précisément, des déclarations d'alias sur des interfaces COM, qui peuvent changer, d'où le besoin de maintenabilité.
        Y a-t-il un moyen de déclarer globalement à tout le projet des using ?
        • Partager sur Facebook
        • Partager sur Twitter
          25 juillet 2011 à 12:34:42

          Ah oki ^^. Non c'est bon.

          Par "copier un paté de code", j'ai cru que tu automatisais le copié-collé de portions de code autre que des usings.
          • Partager sur Facebook
          • Partager sur Twitter
            25 juillet 2011 à 12:44:56

            Malheureusement les usings ne peuvent pas être partagés par plusieurs fichiers :(

            Une solution serait d'encapsuler tes composants COM dans des wrappers définis dans un namespace avec un nom figé. De cette manière si tes composants COM évoluent seuls les wrappers devront être mis à jour, et le reste de ton code sera moins impacté :)
            • Partager sur Facebook
            • Partager sur Twitter
              25 juillet 2011 à 13:26:47

              J'avais envisagé de faire quelque chose dans ce style, mais trop de code à faire, le copier coller est plus simple, surtout à long terme ^^

              Il me semble également qu'il n'est pas possible de modifier la ligne de commande de la compilation ?


              Merci en tout cas.
              • Partager sur Facebook
              • Partager sur Twitter
                25 juillet 2011 à 13:28:45

                Citation : Spaz

                Il me semble également qu'il n'est pas possible de modifier la ligne de commande de la compilation ?


                Tu peux l'influencer via les propriétés de ton projet, et tu peux également rajouter des arguments supplémentaires.
                • Partager sur Facebook
                • Partager sur Twitter
                  25 juillet 2011 à 14:00:20

                  Citation : Orwell

                  Citation : Spaz

                  Il me semble également qu'il n'est pas possible de modifier la ligne de commande de la compilation ?


                  Tu peux l'influencer via les propriétés de ton projet, et tu peux également rajouter des arguments supplémentaires.



                  J'ai oublier où, et je ne retrouve pas -_-

                  Mais je ne pense pas que je puisse, j'avais dans l'idée de changer la commande complète pour que, plutôt que de lancer le compilateur, il lance mon prog, qui lancerait le compilateur après avoir modifié mes .cs
                  • Partager sur Facebook
                  • Partager sur Twitter
                    25 juillet 2011 à 14:24:06

                    Citation : Spaz

                    Citation : Orwell

                    Citation : Spaz

                    Il me semble également qu'il n'est pas possible de modifier la ligne de commande de la compilation ?


                    Tu peux l'influencer via les propriétés de ton projet, et tu peux également rajouter des arguments supplémentaires.



                    J'ai oublier où, et je ne retrouve pas -_-


                    Euh... :euh: Au temps pour moi, il me semblait que c'était possible mais apparemment... :o
                    Mais effectivement, on ne peut à priori pas remplacer l'appel au compilateur par un autre.

                    Cependant, une chose m'étonne:

                    Citation : Spaz

                    je n'ai pas trouver comment le lancer autrement que en pre-build, donc post-compile, ce qui m'oblige à lancer le build deux fois pour compiler correctement.


                    Si c'est du pre-build ça devrait s'exécuter avant la phase de compilation non ? :o Intuitivement j'aurais dit qu'une commande de pre-build aurait suffit à résoudre ton problème, mais je ne maitrise pas le sujet.
                    • Partager sur Facebook
                    • Partager sur Twitter
                      25 juillet 2011 à 14:39:00

                      Intuitivement, c'est ce que je me disais aussi, mais non, le pre-build est après la compilation, et il se fait même si la compilation échoue.
                      • Partager sur Facebook
                      • Partager sur Twitter

                      [C#] Equivalent à #include, ou precompile event

                      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                      • Editeur
                      • Markdown