cannot install 64bit Net SDK 2.0 Beta

  • Thread starter Thread starter AlexS
  • Start date Start date
A

AlexS

When I try this on WinXP SP2 I get error can't install, reason advpack.dll

Is it possible on XP?
 
Yes, the 64-bit SDK must be installed on a 64-bit machine, as does the
runtime. You cannot currently buy XP 64-bit but you can get it from OEMs as
part of a 64-bit computer purchase.

The 64-bit SDK contains executables compiled for 64-bit machine s(x64 for
x64 machines and ia64 for ia64 machines). The runtime does ship with a
version of csc.exe or vbc.exe for your processor that can compile for 64-bit
machines already, though. If you type, for example, "csc.exe /?" (without
quotes) you can see usage. One of the command-line options is
/platform:<type>, which you can specify x86, Itanium, x64, or anycpu. anycpu
is the default if the switch is not specified.

For this reason you really don't need the 64-bit SDK because you already
have the ability to compile for 64-bit processors if you have a version of
the 2.0 runtime installed.

--
This posting is provided "AS IS" with no warranties, and confers no rights.

Software Design Engineer
Developer Division Sustained Engineering
Microsoft
 
How can I upgrade my existing WinXP to 64-bit version?

Why it is not possible to run 64-bit .Net on top of 32-bit WinXP?

If I try to compile for 64-bit platform I get errors indicating that
mscorlib and other .net assemblies are not for target processor.

What is planned?
 
You can't run 64-bit XP on a 32-bit processor. They're entirely different
processor architectures, although x64 (unlike ia64) can run 32-bit natively
(without a software emulator, which ia64 has to use).

When XP x64 was released there was an upgrade plan for a short while but
that has since expired. You would need an x64 machine anyway, either with an
AMD x64 or an Intel x64 processor. If you don't, XP x64 will not even install.

When you compile for x64 (which will only run on x64 processors - very
rarely is there a need to compile for a 64-bit processor since the CLR will
take care of the details; the default of anycpu is almost always adequate)
you should only get warnings - not errors. The reason is because the x86
(32-bit) files are installed and will not be referenced by your x64 assembly.

--
This posting is provided "AS IS" with no warranties, and confers no rights.

Software Design Engineer
Developer Division Sustained Engineering
Microsoft
 
I have 64-bit AMD.

I got it with 32-bit XP.

Is it possible to upgrade? What is the plan?

However, for discussion sake, why it is not possible to run .Net 64
application on XP 32? I guess it is just a matter of how code is assembled
or JIT'ed and called.
And why it is not possible to compile for 64 on 32 bit platform?

As I see it CLR should abstract to certain level machine dependency. I
expected to see at least some portions of code to run "full-speed". However,
MS decided to tie-down 64-bit applications to 64-bit platform. I wonder
why - except obvious commercial reasons.

Alex
 
You'll need to talk to your OEM about obtaining XP x64.

You *can* compile for 64-bit on a 32-bit machine. In my previous post I
mentioned those are only warnings. You will not be able to *run* your 64-bit
assemblies on a 32-bit machine, though. Why can 64-bit machines run 32-bit
but not vice versa? Because x64 machines contain the 32-bit instruction set
and ia64 machines have a software emulator. 32-bit machines were created long
ago when 64-bit machines - at least PCs - didn't even exist.

Even native code can be compiled for 64-bit on a 32-bit machine using
cross-compilers. Both the Platform SDK and VS 2005 contain cross-compilers
and libraries.

The thing you have to ask yourself is why you need to compile for 64-bit?
Managed assemblies will typically be JIT'd and run fine on either a 32- or
64-bit machine. Only in cases where you make calls to 64-bit functions via
P/Invoke or bitwise math requires a different between 32- and 64-bits do you
need to compile one way or another. Even in the .NET Framework only a small
handful of assemblies are compiled for one platform or another. Most
assemblies are compiled with the default "anycpu" and will work just fine.

If you compile for one platform or another needlessly you're only making
deployment more difficult for yourself. Now you'll need to add detection
logic to install the right assemblies on the right machines.

--
This posting is provided "AS IS" with no warranties, and confers no rights.

Software Design Engineer
Developer Division Sustained Engineering
Microsoft
 
Back
Top