Hi,
I use Windows 8.1 64 bits.
I use VS 2012 Ultimate 32bit
I have installed:
64-bit ODAC 11.2 Release 3 (11.2.0.2.1) Xcopy for Windows x64
Location: C:\app\Company\odp.net\bin\2.x\Oracle.DataAccess.dll - ProcessorArchitecture: Amd64
Location: C:\app\Company\odp.net\bin\4\Oracle.DataAccess.dll - ProcessorArchitecture: Amd64
ODAC 11.2 Release 3 (11.2.0.2.1)
Location: C:\app\Company\product\11.2.0\client_2\odp.net\bin\2.x\Oracle.DataAccess.dll - ProcessorArchitecture: X86
Location: C:\app\Company\product\11.2.0\client_2\odp.net\bin\4\Oracle.DataAccess.dll - ProcessorArchitecture: X86
64-bit ODAC 12c Release 2 (12.1.0.1.2) for Windows x64
Location: C:\app\Company\product\12.1.0\client_1\odp.net\bin\2.x\Oracle.DataAccess.dll - ProcessorArchitecture: Amd64
Location: C:\app\Company\product\12.1.0\client_1\odp.net\bin\4\Oracle.DataAccess.dll - ProcessorArchitecture: Amd64
ODAC 12c Release 2 (12.1.0.1.2) and Oracle Developer Tools for Visual Studio
Location: C:\app\Company\product\12.1.0\client_2\odp.net\bin\2.x\Oracle.DataAccess.dll - ProcessorArchitecture: X86
Location: C:\app\Company\product\12.1.0\client_2\odp.net\bin\4\Oracle.DataAccess.dll - ProcessorArchitecture: X86
TNSNames.ora in this paths:
C:\app\Company\Network\Admin
C:\app\Company\product\11.2.0\client_2\Network\Admin
C:\app\Company\product\12.1.0\client_1\Network\Admin
C:\app\Company\product\12.1.0\client_2\Network\Admin
In GAC, I have all these references:
Oracle.DataAccess 32bit - 2.112.2.0 - CLR 2.0
Oracle.DataAccess 32bit - 2.121.1.0 - CLR 2.0
Oracle.DataAccess 64bit - 2.112.2.0 - CLR 2.0
Oracle.DataAccess 64bit - 2.121.1.0 - CLR 2.0
Oracle.DataAccess 32bit - 4.112.2.0 - CLR 4.0
Oracle.DataAccess 32bit - 4.121.1.0 - CLR 4.0
Oracle.DataAccess 64bit - 4.112.2.0 - CLR 4.0
Oracle.DataAccess 64bit - 4.121.1.0 - CLR 4.0
Oracle.ManagedDataAccess MSIL - 4.212.1.0 - CLR 4.0
Oracle.ManagedDataAccessDTC 32bit - 4.212.1.0 - CLR 4.0
Oracle.ManagedDataAccessDTC 64bit - 4.212.1.0 - CLR 4.0
I have VS 2012 unit test project, Platform Target AnyCPU and Target Framework: .NET 4.5.
I use this reference: Oracle.DataAccess.4.112.2.0
Location: C:\app\Company\product\11.2.0\client_2\odp.net\bin\4\Oracle.DataAccess.dll - ProcessorArchitecture: X86
In App.config
<oracle.dataaccess.client>
<settings>
<add name="DllPath" value="C:\app\Reale\product\11.2.0\client_2\bin"/>
</settings>
</oracle.dataaccess.client>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<qualifyAssembly partialName="Oracle.DataAccess" fullName="Oracle.DataAccess, Version=4.112.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342"/>
<dependentAssembly>
<assemblyIdentity name="Oracle.DataAccess" publicKeyToken="89b483f429c47342"/>
<bindingRedirect oldVersion="0.0.0.0-65535.65535.65535.65535" newVersion="4.112.2.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
I execute this code (extract):
[TestMethod]
public void Version_OracleDataAccess_ODPnet_test()
{
InfoCommon();
var locationThisCode = Assembly.GetExecutingAssembly().Location;
var an1 = AssemblyName.GetAssemblyName(locationThisCode);
TestContext.WriteLine("GetExecutingAssembly location: " + locationThisCode);
TestContext.WriteLine("\t\t\tProcessorArchitecture: " + an1.ProcessorArchitecture);
TestContext.WriteLine("");
var t = typeof(Oracle.DataAccess.Client.OracleConnection);
TestContext.WriteLine("Assembly Oracle.DataAccess: " + t.Assembly.FullName);
TestContext.WriteLine("Oracle.DataAccess. Location: " + (t.Assembly).Location);
TestContext.WriteLine("Oracle.DataAccess. GlobalAssemblyCache: " + (t.Assembly).GlobalAssemblyCache);
TestContext.WriteLine("Oracle.DataAccess. AssemblyQualifiedName: " + t.AssemblyQualifiedName);
TestContext.WriteLine("Oracle.DataAccess. Module.FullyQualifiedName: " + (t.Module.FullyQualifiedName));
TestContext.WriteLine("\r\n");
Assert.IsTrue((t.Assembly).GlobalAssemblyCache, t.Name + " NOT in GAC");
var myAssemblyName = AssemblyName.GetAssemblyName(t.Assembly.Location);
TestContext.WriteLine("Oracle.DataAccess. ProcessorArchitecture: " + myAssemblyName.ProcessorArchitecture);
var assemblies = Assembly.GetExecutingAssembly().GetReferencedAssemblies().ToArray();
but I get this, Unit Test is using Oracle.DataAccess, Version=4.121.1.0, not version Oracle.DataAccess, Version=4.112.2.0
Trace log:
GetExecutingAssembly location: C:\TFS\Data.Tests.v4.0\bin\Debug\Data.Tests.v4.0.dll
ProcessorArchitecture: MSIL
Assembly Oracle.DataAccess: Oracle.DataAccess, Version=4.121.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342
Oracle.DataAccess. Location: C:\Windows\Microsoft.Net\assembly\GAC_32\Oracle.DataAccess\v4.0_4.121.1.0__89b483f429c47342\Oracle.DataAccess.dll
Oracle.DataAccess. GlobalAssemblyCache: True
Oracle.DataAccess. AssemblyQualifiedName: Oracle.DataAccess.Client.OracleConnection, Oracle.DataAccess, Version=4.121.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342
Oracle.DataAccess. Module.FullyQualifiedName: C:\Windows\Microsoft.Net\assembly\GAC_32\Oracle.DataAccess\v4.0_4.121.1.0__89b483f429c47342\Oracle.DataAccess.dll
Oracle.DataAccess. ProcessorArchitecture: X86
However, for Get Referenced assemblies, I get:
Location: C:\Windows\Microsoft.Net\assembly\GAC_32\Oracle.DataAccess\v4.0_4.112.2.0__89b483f429c47342\Oracle.DataAccess.dll
ProcessorArchitecture: X86
and in my app.config I set binding redirect and qualifyAssembly
Any suggestions for use 4.112.2.0 version, not 4.121.1.0?