views:

43

answers:

2

Hi, I am trying to write a visual studio C# .net app which i can put on a subversion repository. The program runs on oracle drivers (Oracle.dataAccess) and should be easily managed and developed by anybody trying to access it. The problem is that Visual Studio finds the Oracle.DataAccess installed on the developer's computer and some random user with any version of oracle, or no oracle drivers installed, will have to change a lot of configurations after downloading the file to edit it. I'm trying to find a way to get around that, any help will be fine.

I don't want to package any instant client DLLs with the project because the server the repository is on is very slow.

A: 

I think the only way around the issue is

to package any instant client DLLs with the project

Even with a slow server, you'd only have to get these files once (on checkout) and then just get updates, if any, or when checking out "clean".

Paul Sasik
Well i sorta figured it out. I'm putting only the .cs files on the repository so that other developers can open them and visual studio will look for the oracle drivers on the developers' desktops. I'm not trying to package any DLLs because 1. it takes forever on the repository server 2.they might conflict with the respective developers' versions of Oracle. thanks though.
Tim
+1  A: 

You don't need to worry as long as the other machines have the minimum version you originally linked against installed.

When you install the client drivers on your machine, it should register Oracle.DataAccess.dll in the Global Assembly Cache (GAC). You can see the contents of the GAC by browsing to C:\Windows\Assembly:

Screenshot of the GAC and Oracle.DataAccess.dll plus policy files.

Notice that the installation also installs "policy" files in the GAC. These are binding redirect publisher policies, which, when a program that is linked against an earlier version of Oracle.DataAccess.dll tries to look it up in the GAC, it gets redirected to the newer version at runtime instead. In fact, even if you redistributed the driver with your program, it still might load up a newer version from the GAC if it finds a newer one instead of the one you redistributed with your program.

Mike Atlas