Scaleout upgrade to 64bit
We are upgrading our project from 32bit to 64bit. So we uninstalled the 32bit scaleout and installed 64bit scaleout and referencing it for caching application. But we are getting a warning for soss_svcdotnet reference. Here is the warning
warning MSB3270: There was a mismatch between the processor architecture of the project being built "MSIL" and the processor architecture of the reference "soss_svcdotnet, Version=126.96.36.199, Culture=neutral, PublicKeyToken=a1ec0b86f746a476, processorArchitecture=AnyCPU", "AMD64". This mismatch may cause runtime failures. Please consider changing the targeted processor architecture of your project through the Configuration Manager so as to align the processor architectures between your project and references, or take a dependency on references with a processor architecture that matches the targeted processor architecture of your project.
These are the steps i followed 1) Uninstalled 32bit scaleout 2) verified the scaleout folder which is empty 3) Installed 64bit scaleout 4) Referenced a new soss_svcdotnet & soss_cacheddoetnet and compiled
Is there anything i am missing here?Thanks, Raj
asked Mar 20, 2015 at 06:01 PM in General
As long as you referenced a 64-bit version of the soss_svcdotnet assembly from the C:\Program Files\ScaleOut_Software\StateServer\DOTNET4.0 folder (vs. 32-bit, which by default is placed for a reference purpose in the C:\Program Files (x86)\ScaleOut_Software\StateServer\DOTNET4.0 folder instead), you can ignore this compiler warning. It tells you that your "Any CPU" project directly references 64-bit assembly, which according to the compiler's logic could be dangerous, when your library is loaded into a 32-bit process shell. But since both, 32-bit and 64-bit, versions of soss_svcdotnet are installed in the GAC, .NET Framework runtime will always load the correct version of this soss_svcdotnet assembly depending on the architecture of the target process.
answered Mar 20, 2015 at 09:42 PM
ScaleOut Support Team ♦
The x64 architecture is a backwards-compatible extension of x86. It provides a legacy 32-bit mode, which is identical to x86, and a new 64-bit mode. When 64 bit processors compatible with the x86 architecture were introduced, they were referred to as x86-64. x86-32 (and x86-16) were used for the 32 (and 16) bit versions. This was eventually shortened to x64 for 64 bit and x86 alone refers to a 32 bit processor. The 32 bit processors are designed to handle a limited amount of physical memory maximum of 4GB but 64 bit can handle high memory utilizing 8,16 and some even32 GB.
answered Sep 09, 2017 at 06:02 AM