Basic Instructions Include the Instant Client . DLLs in your project, setting them to "Copy Always". Reference Oracle.DataAccess.
Client like you would any other lib; set Copy Local = True. Your connection string should look like this: Data Source=(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = hostname)(PORT = 1521))(CONNECT_DATA = (SERVER = DEDICATED) (SID = oracle_world_here)));User Id=schema_here;Password=password_here;Persist Security Info=TRUE; Basically the Data Source should look like a normal TNSNAMES. ORA file.
Note A. There are two main versions of the instant client, depending on if you need international languages. I used the Lite version which had a payload of about 28mb.B.
IMPORTANT Ensure the libraries deployed are all from the same version of the client - meaning if you deploy 32-bit ODP. Net you have to deploy 32-bit instant client libs. If you use 11.2 instant client, you cannot use 11.0 ODP.Net, etc. -- silly but lots of people overlook this; use good source control.C.
My experience, the following libraries were placed in the root of my project (to avoid any issues with permissions or %PATH%) oci. Dll ociw32. Dll orannzsbb11.
Dll oraocci11. Dll oraociicus11. Dll oraops11w.
Dll* Summary & Results: You can now deploy a ClickOnce application to a client's machine without having a full Oracle Client installation.To correct myself: it does not fail on x64 machines, or Windows 7... though on developers machines with multiple client and/or ODP. Net installations it can get hairy. This is related to (B) above.
Instant Client supports xcopy deployment, so the same approach (including them in your ClickOnce deployment) should make it OK to deploy. However! In many cases it may be more appropriate (with ClickOnce) to use a "smart client" approach, i.e.Do the data access via an app-server via web-services.
Then you don't need any DAL components in the client.
Has anyone seen this working, including coping with connection stings etc. We can't have each user having to edit all the oracle config files on their PCs – Ian Ringrose Jul 28 '09 at 10:34 We do use a "smart client" approach for most of our apps, however when we wrote the data inport app, web services / . Net remoting was not fast enough. We were also on tight time scales.
– Ian Ringrose Jul 28 '09 at 10:39 Re performance; I know what you mean. I have a few SQL-Server apps that go direct for the same reasons - when necessary ;-p – Marc Gravell? Jul 28 '09 at 10:52 Good point.
When I first started using Oracle and ODP. Net I was also learning WPF and the company was weary of web services.In hindsight, I would suggest to others now to look into services first, and look to the instant client as a secondary option. – one.beat.
Consumer Jul 28 '09 at 8:08.
Only Oracle will think that between 30 and 100 megabytes is a small footprint for a database client! – Ian Ringrose Sep 1 '10 at 16:30 @Ian: That is true. But at least xcopy deployment of 30-100 megabytes is a big improvement over the 600-700 megabytes required for the full Oracle client software which must be installed via the Java-based Oracle Universal Installer... :-) – ObiWanKenobi Sep 2 '10 at 6:34.
XCOPY deployment is the closest you are going to get to a click once deployment with ODP.NET. I just replied to another one of your posts here will a lot of detail about XCOPY deployment. Please have a look: How to write a .
Net application that works with both SqlServer and Oracle (now that System.Data. OracleClient is deprecated) Christian Shay Oracle EDIT: Oracle has announced that sometime in 2011 they will release a fully managed version of the ODP. NET provider (aka thin client).
When that happens there will be no dependency by ODP. NET on any other files and ClickOnce deployment will be simpler. Feel free to provide your feedback on this and other future features at our feature request website: http://apex.oracle.com/pls/apex/f?p=18357:46.
In short, no. This is because the Oracle Data Provider for . Net needs to be installed on the client machine with the Oracle Universal Installer, though as Marc Gravell points out you can use Oracle's Instant Client (which is a handful of binaries and so easily deployed via ClickOnce).
Our applications work the same way as you describe yours - WinForms talking direct to an Oracle Database, and we're using DevArt's dotConnect for Oracle 3rd party libraries, and I think they're fantastic. The 'killer' feature for me is that they support a direct connection to an Oracle Database - no Oracle Client Installation or 'TNSNames. Ora' required whatsoever.
4 I must insist that it is possible, I just got it to work! I downloaded ODAC from oracle. Com/technology/software/tech/windows/odpnet/….
Then I unzipped all the *. Jar files and found oci. Dll, Oracle.DataAccess.
Dll, oraociicus11. Dll, OraOps11w.dll. When these dll's are copied into the same folder as my EXE, it just works, no oracle client installation or tnsnames.
Ora necessary. – Chris Aug 11 '09 at 1:38 I choose this as the best answer as all the methods other people give to get it working seem to only work some of the time on some versions of windows. Will they work on Windows 8?
– Ian Ringrose Sep 9 '09 at 16:02 @Chris - I have to say well done. I want to believe it's possible, but I followed your instructions (and even tried copying ALL of the oracle DLL's) to an xcopy installation of our software and it failed on the first database call. This app works fine with Oracle installed rather than copied.
:o/ (WinXP Pro if that matters) – Andrew Sep 10 '09 at 10:45 1 I'm an avid Oracle fan, but they missed the point with .NET. The ODP. NET should have a thin client, similar to their Java version.
Obviously it is a strategic choice and not an issue of funding or capability. They would like to funnel you away from MS and into Java, if possible. I recommend .
NET folks try Devart dotConnect. – mrjoltcola Sep 2 '10 at 17:46 1 Oracle has announced that sometime in 2011 they will release a fully managed version of the ODP. NET provider (aka thin client).
When that happens there will be no dependency by ODP. NET on any other files and Clickonce deployment will be simpler. Feel free to provide your feedback on this and other future features at our feature request website: apex.oracle.Com/pls/apex/f?
P=18357:46 – Christian Shay Jan 27 at 17:37.
I cant really gove you an answer,but what I can give you is a way to a solution, that is you have to find the anglde that you relate to or peaks your interest. A good paper is one that people get drawn into because it reaches them ln some way.As for me WW11 to me, I think of the holocaust and the effect it had on the survivors, their families and those who stood by and did nothing until it was too late.