Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. Why external .DLLs sucks today

Why external .DLLs sucks today

Scheduled Pinned Locked Moved The Lounge
csharpdotnetsysadminquestion
21 Posts 14 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • V Offline
    V Offline
    vonb
    wrote on last edited by
    #1

    We save all of our source code to a TFS server. TFS takes into consideration only the items included in project (seems rather normal). Well, a collegue of mine right now is on hollidays. Other collegue: "vonb (real name withhold), where is the epplus.dll? Is it .net?" Me: it's an external .dll. Other collegue: "Why can't I find it anywhere?" Me: did you take the code from TFS? Other collegue: "Yes, I did" Me: Then it's clear. External .DLL is not in GAC. Solution: had to go on the test server, go into the INETPUB\BLABLABLA\bin directory, and there it was. saved. Now the .DLL is included into the project and is in TFS. epplus is really nice to handl excel spreadsheets in a web app, so.

    The signature is in building process.. Please wait...

    D E D A R 7 Replies Last reply
    0
    • V vonb

      We save all of our source code to a TFS server. TFS takes into consideration only the items included in project (seems rather normal). Well, a collegue of mine right now is on hollidays. Other collegue: "vonb (real name withhold), where is the epplus.dll? Is it .net?" Me: it's an external .dll. Other collegue: "Why can't I find it anywhere?" Me: did you take the code from TFS? Other collegue: "Yes, I did" Me: Then it's clear. External .DLL is not in GAC. Solution: had to go on the test server, go into the INETPUB\BLABLABLA\bin directory, and there it was. saved. Now the .DLL is included into the project and is in TFS. epplus is really nice to handl excel spreadsheets in a web app, so.

      The signature is in building process.. Please wait...

      D Offline
      D Offline
      dan sh
      wrote on last edited by
      #2

      You could add a folder to solution called ThirdPartyDlls and dump it there.

      "Bastards encourage idiots to use Oracle Forms, Web Forms, Access and a number of other dinky web publishing tolls.", Mycroft Holmes[^]

      V I 2 Replies Last reply
      0
      • D dan sh

        You could add a folder to solution called ThirdPartyDlls and dump it there.

        "Bastards encourage idiots to use Oracle Forms, Web Forms, Access and a number of other dinky web publishing tolls.", Mycroft Holmes[^]

        V Offline
        V Offline
        vonb
        wrote on last edited by
        #3

        I do it like this. Looks like my collegue forgot it this time (They found other projects now, I see)

        The signature is in building process.. Please wait...

        N 1 Reply Last reply
        0
        • V vonb

          We save all of our source code to a TFS server. TFS takes into consideration only the items included in project (seems rather normal). Well, a collegue of mine right now is on hollidays. Other collegue: "vonb (real name withhold), where is the epplus.dll? Is it .net?" Me: it's an external .dll. Other collegue: "Why can't I find it anywhere?" Me: did you take the code from TFS? Other collegue: "Yes, I did" Me: Then it's clear. External .DLL is not in GAC. Solution: had to go on the test server, go into the INETPUB\BLABLABLA\bin directory, and there it was. saved. Now the .DLL is included into the project and is in TFS. epplus is really nice to handl excel spreadsheets in a web app, so.

          The signature is in building process.. Please wait...

          E Offline
          E Offline
          Eytukan
          wrote on last edited by
          #4

          It's an advertisement for epplus dll. It's is a spam, I protest. :mad: :rolleyes:

          Starting to think people post kid pics in their profiles because that was the last time they were cute - Jeremy.

          V 1 Reply Last reply
          0
          • E Eytukan

            It's an advertisement for epplus dll. It's is a spam, I protest. :mad: :rolleyes:

            Starting to think people post kid pics in their profiles because that was the last time they were cute - Jeremy.

            V Offline
            V Offline
            vonb
            wrote on last edited by
            #5

            It's anyway a free library, so don't worry.

            The signature is in building process.. Please wait...

            1 Reply Last reply
            0
            • V vonb

              I do it like this. Looks like my collegue forgot it this time (They found other projects now, I see)

              The signature is in building process.. Please wait...

              N Offline
              N Offline
              Nagy Vilmos
              wrote on last edited by
              #6

              We're going on a Bear Witch Hunt! :-D It's always great when someone's off and you can go through his code and pull out the mistakes; then when he returns you can tar & feather him.

              Reality is an illusion caused by a lack of alcohol "Nagy, you have won the internets." - Keith Barrow

              V N 2 Replies Last reply
              0
              • N Nagy Vilmos

                We're going on a Bear Witch Hunt! :-D It's always great when someone's off and you can go through his code and pull out the mistakes; then when he returns you can tar & feather him.

                Reality is an illusion caused by a lack of alcohol "Nagy, you have won the internets." - Keith Barrow

                V Offline
                V Offline
                vonb
                wrote on last edited by
                #7

                Do you want to come in on Monday? You will hear some Italian words (not the sympathic ones!) :)

                The signature is in building process.. Please wait...

                N 1 Reply Last reply
                0
                • N Nagy Vilmos

                  We're going on a Bear Witch Hunt! :-D It's always great when someone's off and you can go through his code and pull out the mistakes; then when he returns you can tar & feather him.

                  Reality is an illusion caused by a lack of alcohol "Nagy, you have won the internets." - Keith Barrow

                  N Offline
                  N Offline
                  Nicholas Marty
                  wrote on last edited by
                  #8

                  The best part is: Problems in a project only and exclusively arise when the person who wrote it is on holiday... :doh:

                  1 Reply Last reply
                  0
                  • V vonb

                    Do you want to come in on Monday? You will hear some Italian words (not the sympathic ones!) :)

                    The signature is in building process.. Please wait...

                    N Offline
                    N Offline
                    Nicholas Marty
                    wrote on last edited by
                    #9

                    oh... I know a few... was with some ticinesi during my military service :laugh: an estimated 50% of the time they were talking they were swearing ;-P

                    V 1 Reply Last reply
                    0
                    • N Nicholas Marty

                      oh... I know a few... was with some ticinesi during my military service :laugh: an estimated 50% of the time they were talking they were swearing ;-P

                      V Offline
                      V Offline
                      vonb
                      wrote on last edited by
                      #10

                      Now I feel better that I never did military service. Why? In Switzerland since over 40 years but with C permis (residence) and German Passport so I can travel through Europe without problems. :)

                      The signature is in building process.. Please wait...

                      1 Reply Last reply
                      0
                      • V vonb

                        We save all of our source code to a TFS server. TFS takes into consideration only the items included in project (seems rather normal). Well, a collegue of mine right now is on hollidays. Other collegue: "vonb (real name withhold), where is the epplus.dll? Is it .net?" Me: it's an external .dll. Other collegue: "Why can't I find it anywhere?" Me: did you take the code from TFS? Other collegue: "Yes, I did" Me: Then it's clear. External .DLL is not in GAC. Solution: had to go on the test server, go into the INETPUB\BLABLABLA\bin directory, and there it was. saved. Now the .DLL is included into the project and is in TFS. epplus is really nice to handl excel spreadsheets in a web app, so.

                        The signature is in building process.. Please wait...

                        D Offline
                        D Offline
                        dazfuller
                        wrote on last edited by
                        #11

                        What about setting up your own NuGet feed?

                        Eagles may soar, but weasels don't get sucked into jet engines

                        B 1 Reply Last reply
                        0
                        • V vonb

                          We save all of our source code to a TFS server. TFS takes into consideration only the items included in project (seems rather normal). Well, a collegue of mine right now is on hollidays. Other collegue: "vonb (real name withhold), where is the epplus.dll? Is it .net?" Me: it's an external .dll. Other collegue: "Why can't I find it anywhere?" Me: did you take the code from TFS? Other collegue: "Yes, I did" Me: Then it's clear. External .DLL is not in GAC. Solution: had to go on the test server, go into the INETPUB\BLABLABLA\bin directory, and there it was. saved. Now the .DLL is included into the project and is in TFS. epplus is really nice to handl excel spreadsheets in a web app, so.

                          The signature is in building process.. Please wait...

                          A Offline
                          A Offline
                          Alexander DiMauro
                          wrote on last edited by
                          #12

                          You can setup NuGet to automatically download any missing dependencies. I don't put any third party libraries into source control, I just use NuGet. If it's a .dll that isn't available through nuget.org, then, as one other poster said, you can set up your own NuGet feed, either in the cloud through myget.org, or on your own server.

                          I have always wished for my computer to be as easy to use as my telephone; my wish has come true because I can no longer figure out how to use my telephone - Bjarne Stroustrup The world is going to laugh at you anyway, might as well crack the 1st joke! My code has no bugs, it runs exactly as it was written.

                          P 1 Reply Last reply
                          0
                          • V vonb

                            We save all of our source code to a TFS server. TFS takes into consideration only the items included in project (seems rather normal). Well, a collegue of mine right now is on hollidays. Other collegue: "vonb (real name withhold), where is the epplus.dll? Is it .net?" Me: it's an external .dll. Other collegue: "Why can't I find it anywhere?" Me: did you take the code from TFS? Other collegue: "Yes, I did" Me: Then it's clear. External .DLL is not in GAC. Solution: had to go on the test server, go into the INETPUB\BLABLABLA\bin directory, and there it was. saved. Now the .DLL is included into the project and is in TFS. epplus is really nice to handl excel spreadsheets in a web app, so.

                            The signature is in building process.. Please wait...

                            R Offline
                            R Offline
                            RafagaX
                            wrote on last edited by
                            #13

                            External dependencies have always sucked (DLL hell anyone?), but are a necessary evil... X|

                            CEO at: - Rafaga Systems - Para Facturas - Modern Components for the moment...

                            1 Reply Last reply
                            0
                            • V vonb

                              We save all of our source code to a TFS server. TFS takes into consideration only the items included in project (seems rather normal). Well, a collegue of mine right now is on hollidays. Other collegue: "vonb (real name withhold), where is the epplus.dll? Is it .net?" Me: it's an external .dll. Other collegue: "Why can't I find it anywhere?" Me: did you take the code from TFS? Other collegue: "Yes, I did" Me: Then it's clear. External .DLL is not in GAC. Solution: had to go on the test server, go into the INETPUB\BLABLABLA\bin directory, and there it was. saved. Now the .DLL is included into the project and is in TFS. epplus is really nice to handl excel spreadsheets in a web app, so.

                              The signature is in building process.. Please wait...

                              C Offline
                              C Offline
                              Chad Strawinski
                              wrote on last edited by
                              #14

                              This is a problem I used to run into a lot. I don't know if it's the best way, but the way I always deal with this problem is to put all my 3rd party DLLs (and even internal DLL references) in their own folder structure and include it as part of the solution. I usually just make solution folders for this. When you add references, make sure you reference the files there and not anything out of the GAC. Usually you don't even have to install the 3rd party libraries this way so I think it works pretty well. It also helps deal with version incompatibilities since you know everyone will be using whatever is in TFS and not installed on their machine.

                              1 Reply Last reply
                              0
                              • A Alexander DiMauro

                                You can setup NuGet to automatically download any missing dependencies. I don't put any third party libraries into source control, I just use NuGet. If it's a .dll that isn't available through nuget.org, then, as one other poster said, you can set up your own NuGet feed, either in the cloud through myget.org, or on your own server.

                                I have always wished for my computer to be as easy to use as my telephone; my wish has come true because I can no longer figure out how to use my telephone - Bjarne Stroustrup The world is going to laugh at you anyway, might as well crack the 1st joke! My code has no bugs, it runs exactly as it was written.

                                P Offline
                                P Offline
                                patbob
                                wrote on last edited by
                                #15

                                That does solve the DLL deployment problem rather nicely, which was the original poster's issue. However, it still leaves the issue of incompatible DLL versions unaddressed. Checking the DLL into revision control solves both issues, as well as providing a way to roll a new, incompatible DLL out to all the developers with minimal disruption. That's why revision control will continue to be my solution of choice to this issue.

                                We can program with only 1's, but if all you've got are zeros, you've got nothing.

                                A 1 Reply Last reply
                                0
                                • D dazfuller

                                  What about setting up your own NuGet feed?

                                  Eagles may soar, but weasels don't get sucked into jet engines

                                  B Offline
                                  B Offline
                                  BC3Tech
                                  wrote on last edited by
                                  #16

                                  This is exactly what my company's currently considering and why we're considering it :) prior to this we had a build folder called "ExternalDependencies" and then a Promotions file that was processed by a home-grown MSBuild orchestrator. You doctored your file to say what external dependencies you needed and they were pulled in at build time (both in IDE and on server) from the correct place in source control.

                                  C 1 Reply Last reply
                                  0
                                  • P patbob

                                    That does solve the DLL deployment problem rather nicely, which was the original poster's issue. However, it still leaves the issue of incompatible DLL versions unaddressed. Checking the DLL into revision control solves both issues, as well as providing a way to roll a new, incompatible DLL out to all the developers with minimal disruption. That's why revision control will continue to be my solution of choice to this issue.

                                    We can program with only 1's, but if all you've got are zeros, you've got nothing.

                                    A Offline
                                    A Offline
                                    Alexander DiMauro
                                    wrote on last edited by
                                    #17

                                    Yes, but you can specify versions with NuGet. And if you create your own feed, then you upload only the version you are using to your personal feed. Need to update it? Just upload the new version, and everyone can pull down the latest with a simple command. Then again, as usual, there is more than one solution to every problem! So, it's all good...whatever works best for you is the thing to do.

                                    I have always wished for my computer to be as easy to use as my telephone; my wish has come true because I can no longer figure out how to use my telephone - Bjarne Stroustrup The world is going to laugh at you anyway, might as well crack the 1st joke! My code has no bugs, it runs exactly as it was written.

                                    P 1 Reply Last reply
                                    0
                                    • A Alexander DiMauro

                                      Yes, but you can specify versions with NuGet. And if you create your own feed, then you upload only the version you are using to your personal feed. Need to update it? Just upload the new version, and everyone can pull down the latest with a simple command. Then again, as usual, there is more than one solution to every problem! So, it's all good...whatever works best for you is the thing to do.

                                      I have always wished for my computer to be as easy to use as my telephone; my wish has come true because I can no longer figure out how to use my telephone - Bjarne Stroustrup The world is going to laugh at you anyway, might as well crack the 1st joke! My code has no bugs, it runs exactly as it was written.

                                      P Offline
                                      P Offline
                                      patbob
                                      wrote on last edited by
                                      #18

                                      By the time you make it work with multiple views of different vintages seamlessly for all your developers, and make it easy for them to switch working with different views which need different revisions of the DLL, you've pretty much recreated what the revision control system does for you.. except some of it is manually maintained. However, like you said, whatever works :) Amusingly, I used to work for a company where we seriously discussed wrapping a physical computer in static mylar and checking it into the physical part revision tracking storeroom. It was the only way to guarantee we could build the old code. Ahh.. the bad old days.. they won't be missed :)

                                      We can program with only 1's, but if all you've got are zeros, you've got nothing.

                                      1 Reply Last reply
                                      0
                                      • D dan sh

                                        You could add a folder to solution called ThirdPartyDlls and dump it there.

                                        "Bastards encourage idiots to use Oracle Forms, Web Forms, Access and a number of other dinky web publishing tolls.", Mycroft Holmes[^]

                                        I Offline
                                        I Offline
                                        IndifferentDisdain
                                        wrote on last edited by
                                        #19

                                        We do exactly this. Kind of a pain when setting up new solutions, but it allows you to get latest and build on a new image w/o any headaches.

                                        1 Reply Last reply
                                        0
                                        • V vonb

                                          We save all of our source code to a TFS server. TFS takes into consideration only the items included in project (seems rather normal). Well, a collegue of mine right now is on hollidays. Other collegue: "vonb (real name withhold), where is the epplus.dll? Is it .net?" Me: it's an external .dll. Other collegue: "Why can't I find it anywhere?" Me: did you take the code from TFS? Other collegue: "Yes, I did" Me: Then it's clear. External .DLL is not in GAC. Solution: had to go on the test server, go into the INETPUB\BLABLABLA\bin directory, and there it was. saved. Now the .DLL is included into the project and is in TFS. epplus is really nice to handl excel spreadsheets in a web app, so.

                                          The signature is in building process.. Please wait...

                                          J Offline
                                          J Offline
                                          jschell
                                          wrote on last edited by
                                          #20

                                          Might note of course that it doesn't get into the GAC accidentally. The following cases probably exist. - Consumer software where the third party product must be acquired by the user. - Consumer software where the installer uses the third party product installer and it puts it in the GAC (and that is the only option.) - All others. For all others the dll shouldn't be in the GAC at all. Some products install themselves there but the solution to that is to install, grab the dll, then uninstall. Some products have separate tools that seem to require the GAC, but that is still a variation of the first case except the developer responsible for the tool should be aware that they are using the GAC. Once you have the library it goes in source control like anything else. Tricks used to externalize library downloads as part of the build can be risky. Sometimes extremely so. For example. - A library is used in multiple projects. But the developer only tests the project they are working on (especially true to with many products) but the auto update updates everything. And breaks everything. - The build is not including everything so it fails when installed into the production server, in odd and unexpected ways. - The external source disappears or is unavailable. - Because of problems developers start hacking solutions to get around problems that they don't understand due to deadlines and missing libraries. Thus they end up doing things like building on the production server because that is the only way they know to get a build that works.

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • World
                                          • Users
                                          • Groups