рдореБрджреНрджреЗ рдХрд╛ рд╕рд╛рд░
рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, .NET рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд╕реНрд╡рддрдВрддреНрд░ рд╣реИрдВред рд╣рдо рдЙрдореНрдореАрдж рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рд╣рдорд╛рд░рд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди 32-рдмрд┐рдЯ рдФрд░ 64-рдмрд┐рдЯ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рджреЛрдиреЛрдВ рдкрд░ рд╕рдорд╛рди рд░реВрдк рд╕реЗ рдЪрд▓реЗрдЧрд╛ред
рдпрд╣ рдЖрдорддреМрд░ рдкрд░ рддрдм рддрдХ рд╣реЛрддрд╛ рд╣реИ рдЬрдм рддрдХ рд╣рдореЗрдВ рдмрд╛рд╣рд░реА рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо-рдирд┐рд░реНрднрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрдкреНрд░рдмрдВрдзрд┐рдд рд╡рд╛рд▓реЗред рдпрджрд┐ рдРрд╕реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА
x86
рдФрд░
x64
рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рдореМрдЬреВрдж рд╣реИ, рддреЛ рдпрд╣ рд╣рдореЗрдВ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕рд┐рд░рджрд░реНрдж рд▓рд╛ рд╕рдХрддрд╛ рд╣реИред рд╣рдо рдЗрд╕ рддрдереНрдп рд╕реЗ рдЖрдЧреЗ рдмрдврд╝реЗрдВрдЧреЗ рдХрд┐ рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрди рдХреЛ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдХрд░рдирд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреЗрд╡рд▓ 32-рдмрд┐рдЯ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣рдорд╛рд░реЗ рдирд┐рдпрдореЛрдВ рдореЗрдВ рдирд╣реАрдВ рд╣реИред
рд╣рдореЗрдВ рдХрдИ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рджреЛ рдмрд╛рд░ рд╕рдорд░реНрдерди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдбрд┐рдмрдЧрд┐рдВрдЧ рдХрд░рддреЗ рд╕рдордп, рдЖрдкрдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рд╕реНрд╡рд┐рдЪ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдХреИрд╕рд┐рдиреА рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рд╡реЗрдм рд╕рд░реНрд╡рд░ рдХреЗрд╡рд▓
x86
рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдореМрдЬреВрдж рд╣реИ, рдФрд░ ReSharper 64-рдмрд┐рдЯ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рднреА рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдкрдХреЛ рджреЛ рд╡рд┐рддрд░рдг рдЬрд╛рд░реА рдХрд░рдиреЗ рд╣реЛрдВрдЧреЗ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рд╕рд╛рдЗрдЯ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХреЗ рд╕рд╛рде рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдУрд╣, рдХреНрдпрд╛ рдореБрд╢реНрдХрд┐рд▓ рд╡рд┐рдХрд▓реНрдк рд╣реИред рдЗрд╕рд▓рд┐рдП, рд░рдирдЯрд╛рдЗрдо рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЪрдпрди рдХрд░рдирд╛ рдПрдХ рдЙрдЪрд┐рдд рдирд┐рд░реНрдгрдп рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХреЛрдб рдХреЛ (32-рдмрд┐рдЯ рдпрд╛ 64-рдмрд┐рдЯ) рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рд╕реНрд╡рдпрдВ
AnyCPU
рдмрдиреА рд╣реБрдИ рд╣реИрдВред
рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрди рдореЗрдВ, рдЖрдкрдХреЛ Oracle рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬреЛ .NET рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд▓рд┐рдП Oracle рдЗрдВрд╕реНрдЯреЗрдВрдЯ рдХреНрд▓рд╛рдЗрдВрдЯ рдФрд░ Oracle рдбреЗрдЯрд╛ рдкреНрд░рджрд╛рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
рдирд┐рд░реНрдгрдп
рд╕рдорд╛рдзрд╛рди рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдореЗрдВ
runtime/assemblyBinding
рдЯреИрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред
app.config
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЬреЛрдбрд╝реЗрдВ:
<configuration> <runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="Oracle.DataAccess" publicKeyToken="89b483f429c47342" culture="neutral" processorArchitecture="x86" /> <codeBase version="4.112.2.0" href=".\x86\Oracle.DataAccess.dll"/> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="Oracle.DataAccess" publicKeyToken="89b483f429c47342" culture="neutral" processorArchitecture="amd64" /> <codeBase version="4.112.2.0" href=".\x64\Oracle.DataAccess.dll"/> </dependentAssembly> </assemblyBinding> </runtime> </configuration>
processorArchitecture
рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рдЪрд╛рд░ рд╕рдВрднрд╛рд╡рд┐рдд рдорд╛рди рд╣реИрдВ:
x86
,
amd64
,
msil
,
ia64
ред
codeBase
рдореЗрдВ рдкрде рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рднрд┐рдиреНрди рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, ASP.NET рдХреЗ рд▓рд┐рдП рдпрд╣
href=".\bin\x64\Oracle.DataAccess.dll"
рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП
href=".\bin\x64\Oracle.DataAccess.dll"
)ред
рдареАрдХ рд╣реИ, рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЗрди рдХреЗ рдмрд╛рдж "рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп" рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ (рдкрд░реАрдХреНрд╖рдг рдмрдирд╛рддрд╛ рд╣реИ, рд╡реЗрдм рд╕реЗрд╡рд╛рдУрдВ рдФрд░ рд╕рд╛рдЗрдЯреЛрдВ рдФрд░ рд╕рд╣реА рдорд╛рдпрдиреЗ рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдпред
.exe
рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ) рдХреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд╣реА рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
MSBuild рдХреЗ рдЕрдкрдиреЗ рд▓рдХреНрд╖реНрдпреЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
<Import Project="$(MSBuildProjectDirectory)\..\CommonItems.targets" />
рдПрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЖрдорддреМрд░ рдкрд░
AfterBuild
рд▓рдХреНрд╖реНрдп рд╣реЛрддрд╛ рд╣реИред рдЗрд╕реЗ рдЕрдкреВрд░реНрдг / рдЬреЛрдбрд╝рд╛ / рд╕рдВрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП:
<Target Name="AfterBuild" DependsOnTargets="CopyDataAccessFiles" >
рдлрд╝рд╛рдЗрд▓
CommonItems.targets
рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЗрди рд╕рд╛рдорд╛рдиреНрдп рддрддреНрд╡реЛрдВ рдХрд╛ рд╡рд┐рд╡рд░рдг рд╣реИред рдирд┐рд░реНрднрд░рддрд╛ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдиреЗ рдХрд╛ рд▓рдХреНрд╖реНрдп рдпрд╣рд╛рдБ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <ItemGroup> <OracleICFilesx86 Include="$(MSBuildProjectDirectory)\..\externals\OracleIC\x86\*.dll"> <Visible>False</Visible> </OracleICFilesx86> <OracleICFilesx64 Include="$(MSBuildProjectDirectory)\..\externals\OracleIC\x64\*.dll"> <Visible>False</Visible> </OracleICFilesx64> <OdpNetFilesx86 Include="$(MSBuildProjectDirectory)\..\externals\Odp.Net\x86\*.dll"> <Visible>False</Visible> </OdpNetFilesx86> <OdpNetFilesx64 Include="$(MSBuildProjectDirectory)\..\externals\Odp.Net\x64\*.dll"> <Visible>False</Visible> </OdpNetFilesx64> </ItemGroup> <Target Name="CopyDataAccessFiles" > <Copy SourceFiles="@(OracleICFilesX86);@(OdpNetFilesx86)" DestinationFolder="$(MSBuildProjectDirectory)\$(OutputPath)\x86\" SkipUnchangedFiles="true" UseHardLinkIfPossible="true" /> <Copy SourceFiles="@(OracleICFilesX64);@(OdpNetFilesx64)" DestinationFolder="$(MSBuildProjectDirectory)\$(OutputPath)\x64\" SkipUnchangedFiles="true" UseHardLinkIfPossible="true" /> </Target> </Project>
рдкреНрд░рддрд┐рдмрдВрдз
рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╡рд┐рдзрд┐ рдХреА рд╕реАрдорд╛рдПрдБ рд╣реИрдВ:
- рдпрд╣ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдПрдХ рдкреНрд░рдмрдВрдзрд┐рдд рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рдкреНрд░рдХрд╛рд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рд▓рд┐рдП, рд╣рдорд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдПрдХ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рд╕рдВрджрд░реНрдн (Oracle.DataAccess.dll) рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдпрд╛рдиреА рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдкрд░ рдирд┐рд░реНрднрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдирд┐рд╣рд┐рдд, рдЧрддрд┐рд╢реАрд▓ред
- рдЕрдм рд╣рдо рд╕рднреА рд╕рдорд░реНрдерд┐рдд рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдХреЗ рд▓рд┐рдП рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рд╣рдорд╛рд░реЗ рд╕рд╛рде рдЦреАрдВрдЪ рд░рд╣реЗ рд╣реИрдВред рдУрд░реЗрдХрд▓ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдкреНрд░рддрд┐ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо 100 рдПрдордмреА рд╕реЗ рдЕрдзрд┐рдХ рд╣реИред
рд╕рдВрджрд░реНрдн
<рдЕрд╕реЗрдореНрдмрд▓реА рдмрд╛рдЗрдВрдбрд┐рдВрдЧ> рдПрд▓рд┐рдореЗрдВрдЯ рдлреЙрд░ <рд░рдирдЯрд╛рдЗрдо>