Loading ...
Sorry, an error occurred while loading the content.
 

AppDomain Question

Expand Messages
  • tarinbvii
    I know we tend to stay away from Tech Support Hell (tm Dell) here and focus more on process/tools, however I wanted to ask a question to those possibly more
    Message 1 of 15 , Jan 9, 2008
      I know we tend to stay away from Tech Support Hell (tm Dell) here and
      focus more on process/tools, however I wanted to ask a question to
      those possibly more experienced with AppDomains than I am. I pretty
      much have a solution to the problem, however I just want to make sure
      I'm not missing anything.

      The problem is this, I have an Updater scenario where I need to have
      the Updater update itself. This is the perfect scenario for
      AppDomain.ShadowCopyFiles, however I cannot find a way to have a .NET
      executable start with the ShadowCopyFiles turned on by default. Does
      anyone here know of a way?

      My current solution is to have a launcher.exe that will likely never
      change spin up a new AppDomain with ShadowCopyFiles turned on, then
      execute my updater.exe within that AppDomain. This allows the updater
      to be updatable while minimizing any unchangable code. I still feels
      like a kludge to me though. What do you guys and gals think?

      -Jon
    • Ayende Rahien
      There isn t another way unless you are into CLR hosting, and I assure you that this is not the way to go. You can even have the updater.exe update the
      Message 2 of 15 , Jan 9, 2008
        There isn't another way unless you are into CLR hosting, and I assure you that this is not the way to go.
        You can even have the updater.exe update the launcher.exe :-)

        On 1/9/08, tarinbvii <jdscolam@...> wrote:
        I know we tend to stay away from Tech Support Hell (tm Dell) here and
        focus more on process/tools, however I wanted to ask a question to
        those possibly more experienced with AppDomains than I am.  I pretty
        much have a solution to the problem, however I just want to make sure
        I'm not missing anything.

        The problem is this, I have an Updater scenario where I need to have
        the Updater update itself.  This is the perfect scenario for
        AppDomain.ShadowCopyFiles, however I cannot find a way to have a .NET
        executable start with the ShadowCopyFiles turned on by default.  Does
        anyone here know of a way?

        My current solution is to have a launcher.exe that will likely never
        change spin up a new AppDomain with ShadowCopyFiles turned on, then
        execute my updater.exe within that AppDomain.  This allows the updater
        to be updatable while minimizing any unchangable code.  I still feels
        like a kludge to me though.  What do you guys and gals think?

        -Jon




        Yahoo! Groups Links

        <*> To visit your group on the web, go to:
            http://groups.yahoo.com/group/altdotnet/

        <*> Your email settings:
            Individual Email | Traditional

        <*> To change settings online go to:
            http://groups.yahoo.com/group/altdotnet/join
            (Yahoo! ID required)

        <*> To change settings via email:
            mailto:altdotnet-digest@yahoogroups.com
            mailto:altdotnet-fullfeatured@yahoogroups.com

        <*> To unsubscribe from this group, send an email to:
            altdotnet-unsubscribe@yahoogroups.com

        <*> Your use of Yahoo! Groups is subject to:
            http://docs.yahoo.com/info/terms/


      • tarinbvii
        Thanks! However wouldn t the launcher.exe be locked? -Jon ... assure you ... and ... pretty ... sure ... have ... a .NET ... Does ... never ... then ...
        Message 3 of 15 , Jan 9, 2008
          Thanks!

          However wouldn't the launcher.exe be locked?

          -Jon

          --- In altdotnet@yahoogroups.com, "Ayende Rahien" <Ayende@...> wrote:
          >
          > There isn't another way unless you are into CLR hosting, and I
          assure you
          > that this is not the way to go.
          > You can even have the updater.exe update the launcher.exe :-)
          >
          > On 1/9/08, tarinbvii <jdscolam@...> wrote:
          > >
          > > I know we tend to stay away from Tech Support Hell (tm Dell) here
          and
          > > focus more on process/tools, however I wanted to ask a question to
          > > those possibly more experienced with AppDomains than I am. I
          pretty
          > > much have a solution to the problem, however I just want to make
          sure
          > > I'm not missing anything.
          > >
          > > The problem is this, I have an Updater scenario where I need to
          have
          > > the Updater update itself. This is the perfect scenario for
          > > AppDomain.ShadowCopyFiles, however I cannot find a way to have
          a .NET
          > > executable start with the ShadowCopyFiles turned on by default.
          Does
          > > anyone here know of a way?
          > >
          > > My current solution is to have a launcher.exe that will likely
          never
          > > change spin up a new AppDomain with ShadowCopyFiles turned on,
          then
          > > execute my updater.exe within that AppDomain. This allows the
          updater
          > > to be updatable while minimizing any unchangable code. I still
          feels
          > > like a kludge to me though. What do you guys and gals think?
          > >
          > > -Jon
          > >
          > >
          > >
          > >
          > > Yahoo! Groups Links
          > >
          > >
          > >
          > >
          >
        • Ayende Rahien
          Launcher.exe does the following: 1/ copy itself to temp dir 2/ execute the copy in the temp dir with command args 3/ return in the temp dir, launcher does: 1/
          Message 4 of 15 , Jan 9, 2008
            Launcher.exe does the following:
            1/ copy itself to temp dir
            2/ execute the copy in the temp dir with command args
            3/ return

            in the temp dir, launcher does:
            1/ mark the file for deletion
            2/ run updater.exe in a separate app domain with shadow = true

            Is it complex? You bet.
            Can you use ClikcOnce to do it for you?

            On 1/10/08, tarinbvii < jdscolam@...> wrote:
            Thanks!

            However wouldn't the launcher.exe be locked?

            -Jon

            --- In altdotnet@yahoogroups.com, "Ayende Rahien" <Ayende@...> wrote:
            >
            > There isn't another way unless you are into CLR hosting, and I
            assure you
            > that this is not the way to go.
            > You can even have the updater.exe update the launcher.exe :-)
            >
            > On 1/9/08, tarinbvii <jdscolam@...> wrote:
            > >
            > > I know we tend to stay away from Tech Support Hell (tm Dell) here
            and
            > > focus more on process/tools, however I wanted to ask a question to
            > > those possibly more experienced with AppDomains than I am.  I
            pretty
            > > much have a solution to the problem, however I just want to make
            sure
            > > I'm not missing anything.
            > >
            > > The problem is this, I have an Updater scenario where I need to
            have
            > > the Updater update itself.  This is the perfect scenario for
            > > AppDomain.ShadowCopyFiles, however I cannot find a way to have
            a .NET
            > > executable start with the ShadowCopyFiles turned on by default.
            Does
            > > anyone here know of a way?
            > >
            > > My current solution is to have a launcher.exe that will likely
            never
            > > change spin up a new AppDomain with ShadowCopyFiles turned on,
            then
            > > execute my updater.exe within that AppDomain.  This allows the
            updater
            > > to be updatable while minimizing any unchangable code.  I still
            feels
            > > like a kludge to me though.  What do you guys and gals think?
            > >
            > > -Jon
            > >
            > >
            > >
            > >
            > > Yahoo! Groups Links
            > >
            > >
            > >
            > >
            >





            Yahoo! Groups Links

            <*> To visit your group on the web, go to:
                http://groups.yahoo.com/group/altdotnet/

            <*> Your email settings:
                Individual Email | Traditional

            <*> To change settings online go to:
                http://groups.yahoo.com/group/altdotnet/join
                (Yahoo! ID required)

            <*> To change settings via email:
                mailto: altdotnet-digest@yahoogroups.com
                mailto:altdotnet-fullfeatured@yahoogroups.com

            <*> To unsubscribe from this group, send an email to:
                 altdotnet-unsubscribe@yahoogroups.com

            <*> Your use of Yahoo! Groups is subject to:
                http://docs.yahoo.com/info/terms/


          • Chad Myers
            Jon, Have you looked at the Updater Application Block from the P&P folks? I haven t used it, I m only aware of it, but it sounds like it addresses your
            Message 5 of 15 , Jan 9, 2008
              Jon,

              Have you looked at the Updater Application Block from the P&P folks? I haven't used it, I'm only aware of it, but it sounds like it addresses your scenario. I don't know how well it does so, though.

              Two approaches come to mind here:

              APPROACH #1
              Without having a bunch of EXE's around copying files around and executing each other, what you may want to do is a slight of hand with the updater itself.

              Updater.exe (which is v1) will download Updater.v2.exe and run it (Process.Create()) and then terminate itself.

              Updater.v2.exe will delete/rename Updater.exe and then COPY Updater.v2.exe to Updater.exe.

              You now have Updater.exe which is v2.

              APPROACH #2
              Alternatively, you could have a very lightweight (never needs updating because it's so dirt simple, it can't fail) EXE (called something like update_bootstrap.exe) that takes two arguments: src-file file-to-overwrite and wait-PID.

              Your Updater-needing-updated (Update.exe currently ProcessID 994, let's say) will download the latest version (Update.exe.v2) invoke update_bootstrap.exe (see below) and then exit.

              update_bootstrap.exe Update.exe.v2 Update.exe 994

              Update_bootstrap.exe will wait until ProcessID 994 terminates, and then copy Update.exe.v2 to Update.exe (overwriting).

              Viola, done.

              If you ever need to update Update_bootstrap.exe, you're SOL though.


              -----Original Message-----
              From: altdotnet@yahoogroups.com on behalf of tarinbvii
              Sent: Wed 1/9/2008 3:42 PM
              To: altdotnet@yahoogroups.com
              Subject: [altdotnet] AppDomain Question

              I know we tend to stay away from Tech Support Hell (tm Dell) here and
              focus more on process/tools, however I wanted to ask a question to
              those possibly more experienced with AppDomains than I am. I pretty
              much have a solution to the problem, however I just want to make sure
              I'm not missing anything.

              The problem is this, I have an Updater scenario where I need to have
              the Updater update itself. This is the perfect scenario for
              AppDomain.ShadowCopyFiles, however I cannot find a way to have a .NET
              executable start with the ShadowCopyFiles turned on by default. Does
              anyone here know of a way?

              My current solution is to have a launcher.exe that will likely never
              change spin up a new AppDomain with ShadowCopyFiles turned on, then
              execute my updater.exe within that AppDomain. This allows the updater
              to be updatable while minimizing any unchangable code. I still feels
              like a kludge to me though. What do you guys and gals think?

              -Jon
            • tarinbvii
              Ahh, okay we had thought of doing something similar... Great idea! Sadly we can t use ClickOnce because of the deployment group here having to be in control of
              Message 6 of 15 , Jan 9, 2008
                Ahh, okay we had thought of doing something similar... Great idea!
                Sadly we can't use ClickOnce because of the deployment group here
                having to be in control of all of that and they've banned ClickOnce
                for security reasons.

                --- In altdotnet@yahoogroups.com, "Ayende Rahien" <Ayende@...> wrote:
                >
                > Launcher.exe does the following:
                > 1/ copy itself to temp dir
                > 2/ execute the copy in the temp dir with command args
                > 3/ return
                >
                > in the temp dir, launcher does:
                > 1/ mark the file for deletion
                > 2/ run updater.exe in a separate app domain with shadow = true
                >
                > Is it complex? You bet.
                > Can you use ClikcOnce to do it for you?
                >
                > On 1/10/08, tarinbvii <jdscolam@...> wrote:
                > >
                > > Thanks!
                > >
                > > However wouldn't the launcher.exe be locked?
                > >
                > > -Jon
                > >
                > > --- In altdotnet@yahoogroups.com, "Ayende Rahien" <Ayende@> wrote:
                > > >
                > > > There isn't another way unless you are into CLR hosting, and I
                > > assure you
                > > > that this is not the way to go.
                > > > You can even have the updater.exe update the launcher.exe :-)
                > > >
                > > > On 1/9/08, tarinbvii <jdscolam@> wrote:
                > > > >
                > > > > I know we tend to stay away from Tech Support Hell (tm Dell)
                here
                > > and
                > > > > focus more on process/tools, however I wanted to ask a
                question to
                > > > > those possibly more experienced with AppDomains than I am. I
                > > pretty
                > > > > much have a solution to the problem, however I just want to
                make
                > > sure
                > > > > I'm not missing anything.
                > > > >
                > > > > The problem is this, I have an Updater scenario where I need
                to
                > > have
                > > > > the Updater update itself. This is the perfect scenario for
                > > > > AppDomain.ShadowCopyFiles, however I cannot find a way to have
                > > a .NET
                > > > > executable start with the ShadowCopyFiles turned on by
                default.
                > > Does
                > > > > anyone here know of a way?
                > > > >
                > > > > My current solution is to have a launcher.exe that will likely
                > > never
                > > > > change spin up a new AppDomain with ShadowCopyFiles turned on,
                > > then
                > > > > execute my updater.exe within that AppDomain. This allows the
                > > updater
                > > > > to be updatable while minimizing any unchangable code. I
                still
                > > feels
                > > > > like a kludge to me though. What do you guys and gals think?
                > > > >
                > > > > -Jon
                > > > >
                > > > >
                > > > >
                > > > >
                > > > > Yahoo! Groups Links
                > > > >
                > > > >
                > > > >
                > > > >
                > > >
                > >
                > >
                > >
                > >
                > >
                > > Yahoo! Groups Links
                > >
                > >
                > >
                > >
                >
              • Chad Myers
                Oops, typo... update_bootstrap.exe would take 3 arguments. ... From: altdotnet@yahoogroups.com on behalf of Chad Myers Sent: Wed 1/9/2008 4:09 PM To:
                Message 7 of 15 , Jan 9, 2008
                  Oops, typo... update_bootstrap.exe would take 3 arguments.


                  -----Original Message-----
                  From: altdotnet@yahoogroups.com on behalf of Chad Myers
                  Sent: Wed 1/9/2008 4:09 PM
                  To: altdotnet@yahoogroups.com
                  Subject: RE: [altdotnet] AppDomain Question


                  Jon,

                  Have you looked at the Updater Application Block from the P&P folks? I haven't used it, I'm only aware of it, but it sounds like it addresses your scenario. I don't know how well it does so, though.

                  Two approaches come to mind here:

                  APPROACH #1
                  Without having a bunch of EXE's around copying files around and executing each other, what you may want to do is a slight of hand with the updater itself.

                  Updater.exe (which is v1) will download Updater.v2.exe and run it (Process.Create()) and then terminate itself.

                  Updater.v2.exe will delete/rename Updater.exe and then COPY Updater.v2.exe to Updater.exe.

                  You now have Updater.exe which is v2.

                  APPROACH #2
                  Alternatively, you could have a very lightweight (never needs updating because it's so dirt simple, it can't fail) EXE (called something like update_bootstrap.exe) that takes two arguments: src-file file-to-overwrite and wait-PID.

                  Your Updater-needing-updated (Update.exe currently ProcessID 994, let's say) will download the latest version (Update.exe.v2) invoke update_bootstrap.exe (see below) and then exit.

                  update_bootstrap.exe Update.exe.v2 Update.exe 994

                  Update_bootstrap.exe will wait until ProcessID 994 terminates, and then copy Update.exe.v2 to Update.exe (overwriting).

                  Viola, done.

                  If you ever need to update Update_bootstrap.exe, you're SOL though.


                  -----Original Message-----
                  From: altdotnet@yahoogroups.com on behalf of tarinbvii
                  Sent: Wed 1/9/2008 3:42 PM
                  To: altdotnet@yahoogroups.com
                  Subject: [altdotnet] AppDomain Question

                  I know we tend to stay away from Tech Support Hell (tm Dell) here and
                  focus more on process/tools, however I wanted to ask a question to
                  those possibly more experienced with AppDomains than I am. I pretty
                  much have a solution to the problem, however I just want to make sure
                  I'm not missing anything.

                  The problem is this, I have an Updater scenario where I need to have
                  the Updater update itself. This is the perfect scenario for
                  AppDomain.ShadowCopyFiles, however I cannot find a way to have a .NET
                  executable start with the ShadowCopyFiles turned on by default. Does
                  anyone here know of a way?

                  My current solution is to have a launcher.exe that will likely never
                  change spin up a new AppDomain with ShadowCopyFiles turned on, then
                  execute my updater.exe within that AppDomain. This allows the updater
                  to be updatable while minimizing any unchangable code. I still feels
                  like a kludge to me though. What do you guys and gals think?

                  -Jon
                • Sebastien Lambla
                  Considering the main .exe in use needs to be shut down to be replaced in any case, what s the point in an upgrade scenario for shadow copy? If clickonce
                  Message 8 of 15 , Jan 9, 2008
                    Considering the main .exe in use needs to be shut down to be replaced in any
                    case, what's the point in an upgrade scenario for shadow copy?

                    If clickonce doesn't work, msi-based updating and application restart are
                    the most polished way to achieve an in-place update.

                    I always advise against building updaters yourself, it's a hard thing to do,
                    and few people can write an installer properly with in-place updating
                    functionality without ending up in maintenance hell.

                    --
                    SerialSeb
                    http://serialseb.blogspot.com

                    > -----Original Message-----
                    > From: altdotnet@yahoogroups.com [mailto:altdotnet@yahoogroups.com] On
                    > Behalf Of tarinbvii
                    > Sent: 09 January 2008 22:12
                    > To: altdotnet@yahoogroups.com
                    > Subject: [altdotnet] Re: AppDomain Question
                    >
                    > Ahh, okay we had thought of doing something similar... Great idea!
                    > Sadly we can't use ClickOnce because of the deployment group here
                    > having to be in control of all of that and they've banned ClickOnce
                    > for security reasons.
                    >
                    > --- In altdotnet@yahoogroups.com, "Ayende Rahien" <Ayende@...> wrote:
                    > >
                    > > Launcher.exe does the following:
                    > > 1/ copy itself to temp dir
                    > > 2/ execute the copy in the temp dir with command args
                    > > 3/ return
                    > >
                    > > in the temp dir, launcher does:
                    > > 1/ mark the file for deletion
                    > > 2/ run updater.exe in a separate app domain with shadow = true
                    > >
                    > > Is it complex? You bet.
                    > > Can you use ClikcOnce to do it for you?
                    > >
                    > > On 1/10/08, tarinbvii <jdscolam@...> wrote:
                    > > >
                    > > > Thanks!
                    > > >
                    > > > However wouldn't the launcher.exe be locked?
                    > > >
                    > > > -Jon
                    > > >
                    > > > --- In altdotnet@yahoogroups.com, "Ayende Rahien" <Ayende@> wrote:
                    > > > >
                    > > > > There isn't another way unless you are into CLR hosting, and I
                    > > > assure you
                    > > > > that this is not the way to go.
                    > > > > You can even have the updater.exe update the launcher.exe :-)
                    > > > >
                    > > > > On 1/9/08, tarinbvii <jdscolam@> wrote:
                    > > > > >
                    > > > > > I know we tend to stay away from Tech Support Hell (tm Dell)
                    > here
                    > > > and
                    > > > > > focus more on process/tools, however I wanted to ask a
                    > question to
                    > > > > > those possibly more experienced with AppDomains than I am. I
                    > > > pretty
                    > > > > > much have a solution to the problem, however I just want to
                    > make
                    > > > sure
                    > > > > > I'm not missing anything.
                    > > > > >
                    > > > > > The problem is this, I have an Updater scenario where I need
                    > to
                    > > > have
                    > > > > > the Updater update itself. This is the perfect scenario for
                    > > > > > AppDomain.ShadowCopyFiles, however I cannot find a way to have
                    > > > a .NET
                    > > > > > executable start with the ShadowCopyFiles turned on by
                    > default.
                    > > > Does
                    > > > > > anyone here know of a way?
                    > > > > >
                    > > > > > My current solution is to have a launcher.exe that will likely
                    > > > never
                    > > > > > change spin up a new AppDomain with ShadowCopyFiles turned on,
                    > > > then
                    > > > > > execute my updater.exe within that AppDomain. This allows the
                    > > > updater
                    > > > > > to be updatable while minimizing any unchangable code. I
                    > still
                    > > > feels
                    > > > > > like a kludge to me though. What do you guys and gals think?
                    > > > > >
                    > > > > > -Jon
                    > > > > >
                    > > > > >
                    > > > > >
                    > > > > >
                    > > > > > Yahoo! Groups Links
                    > > > > >
                    > > > > >
                    > > > > >
                    > > > > >
                    > > > >
                    > > >
                    > > >
                    > > >
                    > > >
                    > > >
                    > > > Yahoo! Groups Links
                    > > >
                    > > >
                    > > >
                    > > >
                    > >
                    >
                    >
                    >
                    >
                    >
                    > Yahoo! Groups Links
                    >
                    >
                    >
                  • tarinbvii
                    Chad, Thanks for the suggestions! Right now the Updater is going to be packaged as an MSM within an MSI/MSP for the updates and my coworker has that portion
                    Message 9 of 15 , Jan 9, 2008
                      Chad,

                      Thanks for the suggestions! Right now the Updater is going to be
                      packaged as an MSM within an MSI/MSP for the updates and my coworker
                      has that portion figured out. This will cause some problems with the
                      first suggestions, though I could ask him about custom actions in the
                      MSI/MSP to do the work. Though my original idea is really close to
                      the second suggestion. I think between everyone's suggestions I've
                      got some good ideas. I really appreciate the help!

                      -Jon

                      --- In altdotnet@yahoogroups.com, "Chad Myers" <chad@...> wrote:
                      >
                      >
                      > Oops, typo... update_bootstrap.exe would take 3 arguments.
                      >
                      >
                      > -----Original Message-----
                      > From: altdotnet@yahoogroups.com on behalf of Chad Myers
                      > Sent: Wed 1/9/2008 4:09 PM
                      > To: altdotnet@yahoogroups.com
                      > Subject: RE: [altdotnet] AppDomain Question
                      >
                      >
                      > Jon,
                      >
                      > Have you looked at the Updater Application Block from the P&P
                      folks? I haven't used it, I'm only aware of it, but it sounds like it
                      addresses your scenario. I don't know how well it does so, though.
                      >
                      > Two approaches come to mind here:
                      >
                      > APPROACH #1
                      > Without having a bunch of EXE's around copying files around and
                      executing each other, what you may want to do is a slight of hand
                      with the updater itself.
                      >
                      > Updater.exe (which is v1) will download Updater.v2.exe and run it
                      (Process.Create()) and then terminate itself.
                      >
                      > Updater.v2.exe will delete/rename Updater.exe and then COPY
                      Updater.v2.exe to Updater.exe.
                      >
                      > You now have Updater.exe which is v2.
                      >
                      > APPROACH #2
                      > Alternatively, you could have a very lightweight (never needs
                      updating because it's so dirt simple, it can't fail) EXE (called
                      something like update_bootstrap.exe) that takes two arguments: src-
                      file file-to-overwrite and wait-PID.
                      >
                      > Your Updater-needing-updated (Update.exe currently ProcessID 994,
                      let's say) will download the latest version (Update.exe.v2) invoke
                      update_bootstrap.exe (see below) and then exit.
                      >
                      > update_bootstrap.exe Update.exe.v2 Update.exe 994
                      >
                      > Update_bootstrap.exe will wait until ProcessID 994 terminates, and
                      then copy Update.exe.v2 to Update.exe (overwriting).
                      >
                      > Viola, done.
                      >
                      > If you ever need to update Update_bootstrap.exe, you're SOL though.
                      >
                      >
                      > -----Original Message-----
                      > From: altdotnet@yahoogroups.com on behalf of tarinbvii
                      > Sent: Wed 1/9/2008 3:42 PM
                      > To: altdotnet@yahoogroups.com
                      > Subject: [altdotnet] AppDomain Question
                      >
                      > I know we tend to stay away from Tech Support Hell (tm Dell) here
                      and
                      > focus more on process/tools, however I wanted to ask a question to
                      > those possibly more experienced with AppDomains than I am. I
                      pretty
                      > much have a solution to the problem, however I just want to make
                      sure
                      > I'm not missing anything.
                      >
                      > The problem is this, I have an Updater scenario where I need to
                      have
                      > the Updater update itself. This is the perfect scenario for
                      > AppDomain.ShadowCopyFiles, however I cannot find a way to have
                      a .NET
                      > executable start with the ShadowCopyFiles turned on by default.
                      Does
                      > anyone here know of a way?
                      >
                      > My current solution is to have a launcher.exe that will likely
                      never
                      > change spin up a new AppDomain with ShadowCopyFiles turned on, then
                      > execute my updater.exe within that AppDomain. This allows the
                      updater
                      > to be updatable while minimizing any unchangable code. I still
                      feels
                      > like a kludge to me though. What do you guys and gals think?
                      >
                      > -Jon
                      >
                    • tarinbvii
                      Sebastien, Thanks for the response. Our specific problem is requiring us to write our own updater in order to serve our users while compensating for a issue
                      Message 10 of 15 , Jan 9, 2008
                        Sebastien,

                        Thanks for the response. Our specific problem is requiring us to
                        write our own updater in order to serve our users while compensating
                        for a issue with our corporate deployment solution. We can't really
                        control the deployment solution issue or purchase a separate updating
                        system, so we have to roll our own. That being said it's turning out
                        to be a very interesting undertaking aside from this one particular
                        ShadowCopy issue. I do appreciate the input though. It's been a
                        couple of years since I've written any AppDomain stuff, and I was
                        disappointed that the information available and that section of the
                        CLR itself haven't changed since Bob Aman and I did our original work
                        on it.

                        -Jon

                        --- In altdotnet@yahoogroups.com, "Sebastien Lambla" <seb@...> wrote:
                        >
                        > Considering the main .exe in use needs to be shut down to be
                        replaced in any
                        > case, what's the point in an upgrade scenario for shadow copy?
                        >
                        > If clickonce doesn't work, msi-based updating and application
                        restart are
                        > the most polished way to achieve an in-place update.
                        >
                        > I always advise against building updaters yourself, it's a hard
                        thing to do,
                        > and few people can write an installer properly with in-place
                        updating
                        > functionality without ending up in maintenance hell.
                        >
                        > --
                        > SerialSeb
                        > http://serialseb.blogspot.com
                        >
                        > > -----Original Message-----
                        > > From: altdotnet@yahoogroups.com
                        [mailto:altdotnet@yahoogroups.com] On
                        > > Behalf Of tarinbvii
                        > > Sent: 09 January 2008 22:12
                        > > To: altdotnet@yahoogroups.com
                        > > Subject: [altdotnet] Re: AppDomain Question
                        > >
                        > > Ahh, okay we had thought of doing something similar... Great idea!
                        > > Sadly we can't use ClickOnce because of the deployment group here
                        > > having to be in control of all of that and they've banned
                        ClickOnce
                        > > for security reasons.
                        > >
                        > > --- In altdotnet@yahoogroups.com, "Ayende Rahien" <Ayende@> wrote:
                        > > >
                        > > > Launcher.exe does the following:
                        > > > 1/ copy itself to temp dir
                        > > > 2/ execute the copy in the temp dir with command args
                        > > > 3/ return
                        > > >
                        > > > in the temp dir, launcher does:
                        > > > 1/ mark the file for deletion
                        > > > 2/ run updater.exe in a separate app domain with shadow = true
                        > > >
                        > > > Is it complex? You bet.
                        > > > Can you use ClikcOnce to do it for you?
                        > > >
                        > > > On 1/10/08, tarinbvii <jdscolam@> wrote:
                        > > > >
                        > > > > Thanks!
                        > > > >
                        > > > > However wouldn't the launcher.exe be locked?
                        > > > >
                        > > > > -Jon
                        > > > >
                        > > > > --- In altdotnet@yahoogroups.com, "Ayende Rahien" <Ayende@>
                        wrote:
                        > > > > >
                        > > > > > There isn't another way unless you are into CLR hosting,
                        and I
                        > > > > assure you
                        > > > > > that this is not the way to go.
                        > > > > > You can even have the updater.exe update the launcher.exe :-
                        )
                        > > > > >
                        > > > > > On 1/9/08, tarinbvii <jdscolam@> wrote:
                        > > > > > >
                        > > > > > > I know we tend to stay away from Tech Support Hell (tm
                        Dell)
                        > > here
                        > > > > and
                        > > > > > > focus more on process/tools, however I wanted to ask a
                        > > question to
                        > > > > > > those possibly more experienced with AppDomains than I
                        am. I
                        > > > > pretty
                        > > > > > > much have a solution to the problem, however I just want
                        to
                        > > make
                        > > > > sure
                        > > > > > > I'm not missing anything.
                        > > > > > >
                        > > > > > > The problem is this, I have an Updater scenario where I
                        need
                        > > to
                        > > > > have
                        > > > > > > the Updater update itself. This is the perfect scenario
                        for
                        > > > > > > AppDomain.ShadowCopyFiles, however I cannot find a way to
                        have
                        > > > > a .NET
                        > > > > > > executable start with the ShadowCopyFiles turned on by
                        > > default.
                        > > > > Does
                        > > > > > > anyone here know of a way?
                        > > > > > >
                        > > > > > > My current solution is to have a launcher.exe that will
                        likely
                        > > > > never
                        > > > > > > change spin up a new AppDomain with ShadowCopyFiles
                        turned on,
                        > > > > then
                        > > > > > > execute my updater.exe within that AppDomain. This
                        allows the
                        > > > > updater
                        > > > > > > to be updatable while minimizing any unchangable code. I
                        > > still
                        > > > > feels
                        > > > > > > like a kludge to me though. What do you guys and gals
                        think?
                        > > > > > >
                        > > > > > > -Jon
                        > > > > > >
                        > > > > > >
                        > > > > > >
                        > > > > > >
                        > > > > > > Yahoo! Groups Links
                        > > > > > >
                        > > > > > >
                        > > > > > >
                        > > > > > >
                        > > > > >
                        > > > >
                        > > > >
                        > > > >
                        > > > >
                        > > > >
                        > > > > Yahoo! Groups Links
                        > > > >
                        > > > >
                        > > > >
                        > > > >
                        > > >
                        > >
                        > >
                        > >
                        > >
                        > >
                        > > Yahoo! Groups Links
                        > >
                        > >
                        > >
                        >
                      • tarinbvii
                        To throw a little fuel on this fire I ran into this old code from Mike Woodring to munge with the CurrentAppDomain while running. It s 1.1 stuff, but I d love
                        Message 11 of 15 , Jan 9, 2008
                          To throw a little fuel on this fire I ran into this old code from
                          Mike Woodring to munge with the CurrentAppDomain while running. It's
                          1.1 stuff, but I'd love some more opinions of it.

                          AppDomain BaseDirectory (APPBASE) Modification:
                          http://www.bearcanyon.com/dotnet/#changebasedir

                          -Jon

                          --- In altdotnet@yahoogroups.com, "tarinbvii" <jdscolam@...> wrote:
                          >
                          > I know we tend to stay away from Tech Support Hell (tm Dell) here
                          and
                          > focus more on process/tools, however I wanted to ask a question to
                          > those possibly more experienced with AppDomains than I am. I
                          pretty
                          > much have a solution to the problem, however I just want to make
                          sure
                          > I'm not missing anything.
                          >
                          > The problem is this, I have an Updater scenario where I need to
                          have
                          > the Updater update itself. This is the perfect scenario for
                          > AppDomain.ShadowCopyFiles, however I cannot find a way to have
                          a .NET
                          > executable start with the ShadowCopyFiles turned on by default.
                          Does
                          > anyone here know of a way?
                          >
                          > My current solution is to have a launcher.exe that will likely
                          never
                          > change spin up a new AppDomain with ShadowCopyFiles turned on, then
                          > execute my updater.exe within that AppDomain. This allows the
                          updater
                          > to be updatable while minimizing any unchangable code. I still
                          feels
                          > like a kludge to me though. What do you guys and gals think?
                          >
                          > -Jon
                          >
                        • Ayende Rahien
                          BAD Mojo that, Bad Mojo. Don t do this, ever. You are going to run into so many risks of ruining things. As a simple example, consider this: /bin/ myApp.exe
                          Message 12 of 15 , Jan 9, 2008
                            BAD Mojo that, Bad Mojo.

                            Don't do this, ever.
                            You are going to run into so many risks of ruining things.
                            As a simple example, consider this:

                            /bin/
                               myApp.exe
                               service.dll

                            /plugins/
                               plugin.dll

                            myapp.main()
                            {
                               AppDomainUpdate.BaseDirectory = "/plugins";
                             
                               new service.MySrv();
                            }

                            This is going to throw, because fusion will look for the matching service.dll in the wrong diretory.

                            On 1/10/08, tarinbvii <jdscolam@...> wrote:
                            To throw a little fuel on this fire I ran into this old code from
                            Mike Woodring to munge with the CurrentAppDomain while running.  It's
                            1.1 stuff, but I'd love some more opinions of it.

                            AppDomain BaseDirectory (APPBASE) Modification:
                            http://www.bearcanyon.com/dotnet/#changebasedir

                            -Jon

                            --- In altdotnet@yahoogroups.com, "tarinbvii" <jdscolam@...> wrote:
                            >
                            > I know we tend to stay away from Tech Support Hell (tm Dell) here
                            and
                            > focus more on process/tools, however I wanted to ask a question to
                            > those possibly more experienced with AppDomains than I am.  I
                            pretty
                            > much have a solution to the problem, however I just want to make
                            sure
                            > I'm not missing anything.
                            >
                            > The problem is this, I have an Updater scenario where I need to
                            have
                            > the Updater update itself.  This is the perfect scenario for
                            > AppDomain.ShadowCopyFiles, however I cannot find a way to have
                            a .NET
                            > executable start with the ShadowCopyFiles turned on by default.
                            Does
                            > anyone here know of a way?
                            >
                            > My current solution is to have a launcher.exe that will likely
                            never
                            > change spin up a new AppDomain with ShadowCopyFiles turned on, then
                            > execute my updater.exe within that AppDomain.  This allows the
                            updater
                            > to be updatable while minimizing any unchangable code.  I still
                            feels
                            > like a kludge to me though.  What do you guys and gals think?
                            >
                            > -Jon
                            >





                            Yahoo! Groups Links

                            <*> To visit your group on the web, go to:
                                http://groups.yahoo.com/group/altdotnet/

                            <*> Your email settings:
                                Individual Email | Traditional

                            <*> To change settings online go to:
                                http://groups.yahoo.com/group/altdotnet/join
                                (Yahoo! ID required)

                            <*> To change settings via email:
                                mailto:altdotnet-digest@yahoogroups.com
                                mailto: altdotnet-fullfeatured@yahoogroups.com

                            <*> To unsubscribe from this group, send an email to:
                                altdotnet-unsubscribe@yahoogroups.com

                            <*> Your use of Yahoo! Groups is subject to:
                                http://docs.yahoo.com/info/terms/


                          • Sebastien Lambla
                            I d write an updater to download the updating msi / msp and rely on the windows updater for the rest. If you want to make it right, supports the restart
                            Message 13 of 15 , Jan 9, 2008
                              I'd write an updater to download the updating msi / msp and rely on the
                              windows updater for the rest. If you want to make it right, supports the
                              restart manager for windows vista based systems, and a custom way for
                              XP-based systems to shut down and restart your application. More work
                              involved but more secure on the long term.

                              --
                              SerialSeb
                              http://serialseb.blogspot.com


                              > -----Original Message-----
                              > From: altdotnet@yahoogroups.com [mailto:altdotnet@yahoogroups.com] On
                              > Behalf Of tarinbvii
                              > Sent: 09 January 2008 22:41
                              > To: altdotnet@yahoogroups.com
                              > Subject: [altdotnet] Re: AppDomain Question
                              >
                              > Sebastien,
                              >
                              > Thanks for the response. Our specific problem is requiring us to
                              > write our own updater in order to serve our users while compensating
                              > for a issue with our corporate deployment solution. We can't really
                              > control the deployment solution issue or purchase a separate updating
                              > system, so we have to roll our own. That being said it's turning out
                              > to be a very interesting undertaking aside from this one particular
                              > ShadowCopy issue. I do appreciate the input though. It's been a
                              > couple of years since I've written any AppDomain stuff, and I was
                              > disappointed that the information available and that section of the
                              > CLR itself haven't changed since Bob Aman and I did our original work
                              > on it.
                              >
                              > -Jon
                              >
                              > --- In altdotnet@yahoogroups.com, "Sebastien Lambla" <seb@...> wrote:
                              > >
                              > > Considering the main .exe in use needs to be shut down to be
                              > replaced in any
                              > > case, what's the point in an upgrade scenario for shadow copy?
                              > >
                              > > If clickonce doesn't work, msi-based updating and application
                              > restart are
                              > > the most polished way to achieve an in-place update.
                              > >
                              > > I always advise against building updaters yourself, it's a hard
                              > thing to do,
                              > > and few people can write an installer properly with in-place
                              > updating
                              > > functionality without ending up in maintenance hell.
                              > >
                              > > --
                              > > SerialSeb
                              > > http://serialseb.blogspot.com
                              > >
                              > > > -----Original Message-----
                              > > > From: altdotnet@yahoogroups.com
                              > [mailto:altdotnet@yahoogroups.com] On
                              > > > Behalf Of tarinbvii
                              > > > Sent: 09 January 2008 22:12
                              > > > To: altdotnet@yahoogroups.com
                              > > > Subject: [altdotnet] Re: AppDomain Question
                              > > >
                              > > > Ahh, okay we had thought of doing something similar... Great idea!
                              > > > Sadly we can't use ClickOnce because of the deployment group here
                              > > > having to be in control of all of that and they've banned
                              > ClickOnce
                              > > > for security reasons.
                              > > >
                              > > > --- In altdotnet@yahoogroups.com, "Ayende Rahien" <Ayende@> wrote:
                              > > > >
                              > > > > Launcher.exe does the following:
                              > > > > 1/ copy itself to temp dir
                              > > > > 2/ execute the copy in the temp dir with command args
                              > > > > 3/ return
                              > > > >
                              > > > > in the temp dir, launcher does:
                              > > > > 1/ mark the file for deletion
                              > > > > 2/ run updater.exe in a separate app domain with shadow = true
                              > > > >
                              > > > > Is it complex? You bet.
                              > > > > Can you use ClikcOnce to do it for you?
                              > > > >
                              > > > > On 1/10/08, tarinbvii <jdscolam@> wrote:
                              > > > > >
                              > > > > > Thanks!
                              > > > > >
                              > > > > > However wouldn't the launcher.exe be locked?
                              > > > > >
                              > > > > > -Jon
                              > > > > >
                              > > > > > --- In altdotnet@yahoogroups.com, "Ayende Rahien" <Ayende@>
                              > wrote:
                              > > > > > >
                              > > > > > > There isn't another way unless you are into CLR hosting,
                              > and I
                              > > > > > assure you
                              > > > > > > that this is not the way to go.
                              > > > > > > You can even have the updater.exe update the launcher.exe :-
                              > )
                              > > > > > >
                              > > > > > > On 1/9/08, tarinbvii <jdscolam@> wrote:
                              > > > > > > >
                              > > > > > > > I know we tend to stay away from Tech Support Hell (tm
                              > Dell)
                              > > > here
                              > > > > > and
                              > > > > > > > focus more on process/tools, however I wanted to ask a
                              > > > question to
                              > > > > > > > those possibly more experienced with AppDomains than I
                              > am. I
                              > > > > > pretty
                              > > > > > > > much have a solution to the problem, however I just want
                              > to
                              > > > make
                              > > > > > sure
                              > > > > > > > I'm not missing anything.
                              > > > > > > >
                              > > > > > > > The problem is this, I have an Updater scenario where I
                              > need
                              > > > to
                              > > > > > have
                              > > > > > > > the Updater update itself. This is the perfect scenario
                              > for
                              > > > > > > > AppDomain.ShadowCopyFiles, however I cannot find a way to
                              > have
                              > > > > > a .NET
                              > > > > > > > executable start with the ShadowCopyFiles turned on by
                              > > > default.
                              > > > > > Does
                              > > > > > > > anyone here know of a way?
                              > > > > > > >
                              > > > > > > > My current solution is to have a launcher.exe that will
                              > likely
                              > > > > > never
                              > > > > > > > change spin up a new AppDomain with ShadowCopyFiles
                              > turned on,
                              > > > > > then
                              > > > > > > > execute my updater.exe within that AppDomain. This
                              > allows the
                              > > > > > updater
                              > > > > > > > to be updatable while minimizing any unchangable code. I
                              > > > still
                              > > > > > feels
                              > > > > > > > like a kludge to me though. What do you guys and gals
                              > think?
                              > > > > > > >
                              > > > > > > > -Jon
                              > > > > > > >
                              > > > > > > >
                              > > > > > > >
                              > > > > > > >
                              > > > > > > > Yahoo! Groups Links
                              > > > > > > >
                              > > > > > > >
                              > > > > > > >
                              > > > > > > >
                              > > > > > >
                              > > > > >
                              > > > > >
                              > > > > >
                              > > > > >
                              > > > > >
                              > > > > > Yahoo! Groups Links
                              > > > > >
                              > > > > >
                              > > > > >
                              > > > > >
                              > > > >
                              > > >
                              > > >
                              > > >
                              > > >
                              > > >
                              > > > Yahoo! Groups Links
                              > > >
                              > > >
                              > > >
                              > >
                              >
                              >
                              >
                              >
                              >
                              > Yahoo! Groups Links
                              >
                              >
                              >
                            • tarinbvii
                              ... the .02! ... It s ... here ... to ... then
                              Message 14 of 15 , Jan 10, 2008
                                ::laughs:: Yeah I figured it'd be something like that. Thanks for
                                the .02!

                                --- In altdotnet@yahoogroups.com, "Ayende Rahien" <Ayende@...> wrote:
                                >
                                > BAD Mojo that, Bad Mojo.
                                >
                                > Don't do this, ever.
                                > You are going to run into so many risks of ruining things.
                                > As a simple example, consider this:
                                >
                                > /bin/
                                > myApp.exe
                                > service.dll
                                >
                                > /plugins/
                                > plugin.dll
                                >
                                > myapp.main()
                                > {
                                > AppDomainUpdate.BaseDirectory = "/plugins";
                                >
                                > new service.MySrv();
                                > }
                                >
                                > This is going to throw, because fusion will look for the matching
                                > service.dll in the wrong diretory.
                                >
                                > On 1/10/08, tarinbvii <jdscolam@...> wrote:
                                > >
                                > > To throw a little fuel on this fire I ran into this old code from
                                > > Mike Woodring to munge with the CurrentAppDomain while running.
                                It's
                                > > 1.1 stuff, but I'd love some more opinions of it.
                                > >
                                > > AppDomain BaseDirectory (APPBASE) Modification:
                                > > http://www.bearcanyon.com/dotnet/#changebasedir
                                > >
                                > > -Jon
                                > >
                                > > --- In altdotnet@yahoogroups.com, "tarinbvii" <jdscolam@> wrote:
                                > > >
                                > > > I know we tend to stay away from Tech Support Hell (tm Dell)
                                here
                                > > and
                                > > > focus more on process/tools, however I wanted to ask a question
                                to
                                > > > those possibly more experienced with AppDomains than I am. I
                                > > pretty
                                > > > much have a solution to the problem, however I just want to make
                                > > sure
                                > > > I'm not missing anything.
                                > > >
                                > > > The problem is this, I have an Updater scenario where I need to
                                > > have
                                > > > the Updater update itself. This is the perfect scenario for
                                > > > AppDomain.ShadowCopyFiles, however I cannot find a way to have
                                > > a .NET
                                > > > executable start with the ShadowCopyFiles turned on by default.
                                > > Does
                                > > > anyone here know of a way?
                                > > >
                                > > > My current solution is to have a launcher.exe that will likely
                                > > never
                                > > > change spin up a new AppDomain with ShadowCopyFiles turned on,
                                then
                                > > > execute my updater.exe within that AppDomain. This allows the
                                > > updater
                                > > > to be updatable while minimizing any unchangable code. I still
                                > > feels
                                > > > like a kludge to me though. What do you guys and gals think?
                                > > >
                                > > > -Jon
                                > > >
                                > >
                                > >
                                > >
                                > >
                                > >
                                > > Yahoo! Groups Links
                                > >
                                > >
                                > >
                                > >
                                >
                              • tarinbvii
                                That s excellent. We re going to talk about it right now. Thanks! ... the ... supports the ... for ... work ... [mailto:altdotnet@yahoogroups.com] On ...
                                Message 15 of 15 , Jan 10, 2008
                                  That's excellent. We're going to talk about it right now. Thanks!

                                  --- In altdotnet@yahoogroups.com, "Sebastien Lambla" <seb@...> wrote:
                                  >
                                  > I'd write an updater to download the updating msi / msp and rely on
                                  the
                                  > windows updater for the rest. If you want to make it right,
                                  supports the
                                  > restart manager for windows vista based systems, and a custom way
                                  for
                                  > XP-based systems to shut down and restart your application. More
                                  work
                                  > involved but more secure on the long term.
                                  >
                                  > --
                                  > SerialSeb
                                  > http://serialseb.blogspot.com
                                  >
                                  >
                                  > > -----Original Message-----
                                  > > From: altdotnet@yahoogroups.com
                                  [mailto:altdotnet@yahoogroups.com] On
                                  > > Behalf Of tarinbvii
                                  > > Sent: 09 January 2008 22:41
                                  > > To: altdotnet@yahoogroups.com
                                  > > Subject: [altdotnet] Re: AppDomain Question
                                  > >
                                  > > Sebastien,
                                  > >
                                  > > Thanks for the response. Our specific problem is requiring us to
                                  > > write our own updater in order to serve our users while
                                  compensating
                                  > > for a issue with our corporate deployment solution. We can't
                                  really
                                  > > control the deployment solution issue or purchase a separate
                                  updating
                                  > > system, so we have to roll our own. That being said it's turning
                                  out
                                  > > to be a very interesting undertaking aside from this one
                                  particular
                                  > > ShadowCopy issue. I do appreciate the input though. It's been a
                                  > > couple of years since I've written any AppDomain stuff, and I was
                                  > > disappointed that the information available and that section of
                                  the
                                  > > CLR itself haven't changed since Bob Aman and I did our original
                                  work
                                  > > on it.
                                  > >
                                  > > -Jon
                                  > >
                                  > > --- In altdotnet@yahoogroups.com, "Sebastien Lambla" <seb@> wrote:
                                  > > >
                                  > > > Considering the main .exe in use needs to be shut down to be
                                  > > replaced in any
                                  > > > case, what's the point in an upgrade scenario for shadow copy?
                                  > > >
                                  > > > If clickonce doesn't work, msi-based updating and application
                                  > > restart are
                                  > > > the most polished way to achieve an in-place update.
                                  > > >
                                  > > > I always advise against building updaters yourself, it's a hard
                                  > > thing to do,
                                  > > > and few people can write an installer properly with in-place
                                  > > updating
                                  > > > functionality without ending up in maintenance hell.
                                  > > >
                                  > > > --
                                  > > > SerialSeb
                                  > > > http://serialseb.blogspot.com
                                  > > >
                                  > > > > -----Original Message-----
                                  > > > > From: altdotnet@yahoogroups.com
                                  > > [mailto:altdotnet@yahoogroups.com] On
                                  > > > > Behalf Of tarinbvii
                                  > > > > Sent: 09 January 2008 22:12
                                  > > > > To: altdotnet@yahoogroups.com
                                  > > > > Subject: [altdotnet] Re: AppDomain Question
                                  > > > >
                                  > > > > Ahh, okay we had thought of doing something similar... Great
                                  idea!
                                  > > > > Sadly we can't use ClickOnce because of the deployment group
                                  here
                                  > > > > having to be in control of all of that and they've banned
                                  > > ClickOnce
                                  > > > > for security reasons.
                                  > > > >
                                  > > > > --- In altdotnet@yahoogroups.com, "Ayende Rahien" <Ayende@>
                                  wrote:
                                  > > > > >
                                  > > > > > Launcher.exe does the following:
                                  > > > > > 1/ copy itself to temp dir
                                  > > > > > 2/ execute the copy in the temp dir with command args
                                  > > > > > 3/ return
                                  > > > > >
                                  > > > > > in the temp dir, launcher does:
                                  > > > > > 1/ mark the file for deletion
                                  > > > > > 2/ run updater.exe in a separate app domain with shadow =
                                  true
                                  > > > > >
                                  > > > > > Is it complex? You bet.
                                  > > > > > Can you use ClikcOnce to do it for you?
                                  > > > > >
                                  > > > > > On 1/10/08, tarinbvii <jdscolam@> wrote:
                                  > > > > > >
                                  > > > > > > Thanks!
                                  > > > > > >
                                  > > > > > > However wouldn't the launcher.exe be locked?
                                  > > > > > >
                                  > > > > > > -Jon
                                  > > > > > >
                                  > > > > > > --- In altdotnet@yahoogroups.com, "Ayende Rahien"
                                  <Ayende@>
                                  > > wrote:
                                  > > > > > > >
                                  > > > > > > > There isn't another way unless you are into CLR hosting,
                                  > > and I
                                  > > > > > > assure you
                                  > > > > > > > that this is not the way to go.
                                  > > > > > > > You can even have the updater.exe update the
                                  launcher.exe :-
                                  > > )
                                  > > > > > > >
                                  > > > > > > > On 1/9/08, tarinbvii <jdscolam@> wrote:
                                  > > > > > > > >
                                  > > > > > > > > I know we tend to stay away from Tech Support Hell (tm
                                  > > Dell)
                                  > > > > here
                                  > > > > > > and
                                  > > > > > > > > focus more on process/tools, however I wanted to ask a
                                  > > > > question to
                                  > > > > > > > > those possibly more experienced with AppDomains than I
                                  > > am. I
                                  > > > > > > pretty
                                  > > > > > > > > much have a solution to the problem, however I just
                                  want
                                  > > to
                                  > > > > make
                                  > > > > > > sure
                                  > > > > > > > > I'm not missing anything.
                                  > > > > > > > >
                                  > > > > > > > > The problem is this, I have an Updater scenario where
                                  I
                                  > > need
                                  > > > > to
                                  > > > > > > have
                                  > > > > > > > > the Updater update itself. This is the perfect
                                  scenario
                                  > > for
                                  > > > > > > > > AppDomain.ShadowCopyFiles, however I cannot find a
                                  way to
                                  > > have
                                  > > > > > > a .NET
                                  > > > > > > > > executable start with the ShadowCopyFiles turned on by
                                  > > > > default.
                                  > > > > > > Does
                                  > > > > > > > > anyone here know of a way?
                                  > > > > > > > >
                                  > > > > > > > > My current solution is to have a launcher.exe that
                                  will
                                  > > likely
                                  > > > > > > never
                                  > > > > > > > > change spin up a new AppDomain with ShadowCopyFiles
                                  > > turned on,
                                  > > > > > > then
                                  > > > > > > > > execute my updater.exe within that AppDomain. This
                                  > > allows the
                                  > > > > > > updater
                                  > > > > > > > > to be updatable while minimizing any unchangable
                                  code. I
                                  > > > > still
                                  > > > > > > feels
                                  > > > > > > > > like a kludge to me though. What do you guys and gals
                                  > > think?
                                  > > > > > > > >
                                  > > > > > > > > -Jon
                                  > > > > > > > >
                                  > > > > > > > >
                                  > > > > > > > >
                                  > > > > > > > >
                                  > > > > > > > > Yahoo! Groups Links
                                  > > > > > > > >
                                  > > > > > > > >
                                  > > > > > > > >
                                  > > > > > > > >
                                  > > > > > > >
                                  > > > > > >
                                  > > > > > >
                                  > > > > > >
                                  > > > > > >
                                  > > > > > >
                                  > > > > > > Yahoo! Groups Links
                                  > > > > > >
                                  > > > > > >
                                  > > > > > >
                                  > > > > > >
                                  > > > > >
                                  > > > >
                                  > > > >
                                  > > > >
                                  > > > >
                                  > > > >
                                  > > > > Yahoo! Groups Links
                                  > > > >
                                  > > > >
                                  > > > >
                                  > > >
                                  > >
                                  > >
                                  > >
                                  > >
                                  > >
                                  > > Yahoo! Groups Links
                                  > >
                                  > >
                                  > >
                                  >
                                Your message has been successfully submitted and would be delivered to recipients shortly.