1

I am building a program in VB.net which uses a program called Grapher (Golden Software) to make graphs.

On my computer (64 bit), it works perfectly, and the reference in my project is to Program Files (x86)\GoldenSoftware\...

However, in my colleague's computer (32 bit), it doesn't work. I think it is because of the way it is referenced in my project. On their computer, it is located in Program Files\GoldenSoftware\...

Is there a way I can:

  1. Change the reference path on runtime
  2. Add both references to my project and only use the one which exists
  3. Do something even better?

Thanks.

Matt Wilko
  • 26,994
  • 10
  • 93
  • 143
Sastreen
  • 597
  • 4
  • 13
  • 1
    copy both dlls to your exe dir, rename appropriately and use something like this? http://stackoverflow.com/questions/1997268/how-to-reference-different-version-of-dll-with-msbuild/1998436 – stijn Jun 23 '14 at 11:00

2 Answers2

1

Some options are:

  1. Install the assembly into the same folder as the exe
  2. Install the assembly into the Global Assembly Cache
  3. Specify codeBase tags in the application config file
  4. Use the AssemblyResolve event

For details of items 2 -4 see this microsoft document: http://support.microsoft.com/kb/837908

Matt Wilko
  • 26,994
  • 10
  • 93
  • 143
  • Thanks Matt. It turns out that the colleague had a "broken" version of Grapher which didn't even have the dll I needed. All we had to do was copy the GoldenSoftware from x86 to non-x86. – Sastreen Jun 23 '14 at 11:08
0

It turns out that the colleague had a "broken" version of Grapher which didn't even have the dll I needed.

All we had to do was copy the GoldenSoftware folder from program files (x86) to non-x86 program files.

Sastreen
  • 597
  • 4
  • 13