Where are the SDK tools? Where is ildasm?

Source: Internet
Author: User
Tags visual studio 2010

C: \ Program Files \ microsoft sdks \ windows \ v6.0 \ bin \ ildasm.exe
C: \ Program Files \ microsoft sdks \ windows \ v6.0a \ bin \ ildasm.exe
C: \ Program Files \ microsoft sdks \ windows \ v7.0a \ bin \ ildasm.exe
C: \ Program Files \ microsoft sdks \ windows \ v7.0a \ bin \ x64 \ ildasm.exe
C: \ Program Files \ microsoft sdks \ windows \ v7.0a \ bin \ netfx 4.0 tools \ ildasm.exe
C: \ Program Files \ microsoft sdks \ windows \ v7.0a \ bin \ netfx 4.0 tools \ x64 \ ildasm.exe
C: \ Program Files (x86) \ microsoft sdks \ windows \ v7.0a \ bin \ ildasm.exe
C: \ Program Files (x86) \ microsoft sdks \ windows \ v7.0a \ bin \ x64 \ ildasm.exe
C: \ Program Files (x86) \ microsoft sdks \ windows \ v7.0a \ bin \ netfx 4.0 tools \ ildasm.exe
C: \ Program Files (x86) \ microsoft sdks \ windows \ v7.0a \ bin \ netfx 4.0 tools \ x64 \ ildasm.exe

What are all these different versions? Which one shoshould I use? Sumit Kumar is the project manager for "Windows SDK", so I sat down with him to find out. The windows SDK blog is at http://blogs.msdn.com/windowssdk.

(Note: The last four directories exist but don't actually contain a copy of ildasm.exe. I just put them there for dramatic effect .)What are the SDK tools?

The SDK tools are a sort of grab-bag of utilities that advanced programmers will find useful. some are general tools put forward by the windows and C ++ teams. others are. NET development from the CLR or Visual Studio teams. there are over 100 tools but so far I 've only used these:

Ildasm.exe-dumps out the Il bytecode from A. Net assembly.
Peverify.exe-verifies that Visual Basic produces valid. Net assemblies.
Gacutil.exe-checks which assemblies are in the Global Assembly Cache
Guidgen.exe-generates a new guid
Consume.exe-consumes memory or CPU or page-file or disk, as a stress test

The Windows SDK blog is a great place to find out about them. Bonus: A. Net game called terrarium!

the " Windows release track of the SDK tools " means that whenever a new version of Windows is released, they release a new version of the SDK tools as a free download. the intention is that this release of the tools is good for targeting this release of windows. so when version 6.0 of windows was released, I. e. vista, they released the tools in "c: \ Program Files \ microsoft sdks \ windows \ v6.0 ".

the " Visual Studio release track " means that whenever a new version of Visual Studio is released, it inspecates a version of the SDK tools as well. the intention is that this release of the tools is good for targeting anything that this release of Visual Studio can target. (because vs can target most prior versions of. net Framework, it means that the vs version of the SDK tools will also include prior versions of. net-specific tools .) for the vs release track, the tools directory name has the suffix "A" after it. so Visual Studio 9 (which came out after v6.0 of Windows) went in "C: \ Program Files \ microsoft sdks \ windows \ v6.0a ".

Sharp readers will look at the list above and think "Ahah! In the list above he wrote v7.0a! The "A" means it's a release of Visual Studio. And the 7.0 means that the next windows will be released before Visual Studio 2010 !" Hold your horses! I'm sorry to disappoint you, but we picked these numbers and directory names for the SDKLongTime in advance, there's no guarantee that they's final, and the numbers end up bearing no relation to release schedules.. Net 4.0? 64 bit?

Visual Studio 2010 will ship with a new version. net, version 4.0. but it supports "Multi-targeting", where you can target older versions. net as well. and so it has to ship. net3.5 versions of the tools as well. net4.0 versions of the tools.

Also, some of the tools have 64bit versions; others are 32-bit only. the 64bit versions are only installed if you have a 64bit operating system. the 64bit versions are found in subdirectories called "... \ x64 ". if the x64 directories does not contain a participant tool, then it means that we haven't shipped a 64bit version of that tool, and you're expected fall back to the 32bit version.

So here's the complete table. Only the shaded rows actually exist. The rest are all potential future versions that Microsoft won't commit to until it ships them.

Release ""

Version

32/64 bit

CLR

C: \ Program Files \ microsoft sdks \ windows \...

... \ V6.0 \ bin \ ildasm.exe

Windows

Vista

X86

. Net3.5

... \ V6.0a \ bin \ ildasm.exe

VS

2008

X86

. Net3.5

... \ V6.1 \ bin \ ildasm.exe

Windows

Server2008

X86

. Net3.5

... \ V7.0 \ bin \ ildasm.exe

Windows

?? Next version

X86

??

... \ V7.0 \ bin \ x64 \ ildasm.exe

Windows

?? Next version

X64

??

... \ V7.0a \ bin \ ildasm.exe

VS

2010

X86

. Net3.5

... \ V7.0a \ bin \ x64 \ ildasm.exe

VS

2010

X64

. Net3.5

... \ V7.0a \ bin \ netfx 4.0 tools \ ildasm.exe

VS

2010

X86

. Net4.0

... \ V7.0a \ bin \ netfx 4.0 tools \ x64 \ ildasm.exe

VS

2010

X64

. Net4.0

C: \ Program Files (x86) \ microsoft sdks \ windows \...

This directory only exists on x64 systems, and it doesn't contain any tools executables.
Ignore it. Registry and folder locations

When you launch the "Visual Studio command line tools" shortcut cut from the Start menu, it sets the path environment variable to point to appropriate versions of the tools.

But if you have your own tooling and want to point it to the correct locations, you should use the registry. for release 7.0a of the tools we recommend CT to use these registry keys. once again, these are not final and might change when we ship Visual Studio 2010.

[HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ microsoft sdks \ windows \ v7.0a \ WinSDK-NetFx35Tools-x64]
"Installationfolder" = "C: \ Program Files \ microsoft sdks \ windows \ v7.0a \ bin \ x64 \"

[HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ microsoft sdks \ windows \ v7.0a \ WinSDK-NetFx35Tools-x86]
"Installationfolder" = "C: \ Program Files \ microsoft sdks \ windows \ v7.0a \ bin \"

[HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ microsoft sdks \ windows \ v7.0a \ WinSDK-NetFx40Tools-x64]
"Installationfolder" = "C: \ Program Files \ microsoft sdks \ windows \ v7.0a \ bin \ netfx 4.0 tools \ x64 \"

[HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ microsoft sdks \ windows \ v7.0a \ WinSDK-NetFx40Tools-x86]
"Installationfolder" = "C: \ Program Files \ microsoft sdks \ windows \ v7.0a \ bin \ netfx 4.0 tools \"

[HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ microsoft sdks \ windows \ v7.0a \ winsdk-vsheaderslibs]
"Installationfolder" = "C: \ Program Files \ microsoft sdks \ windows \ v7.0a \"

[HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ microsoft sdks \ windows \ v7.0a \ winsdk-vstools]
"Installationfolder" = "C: \ Program Files \ microsoft sdks \ windows \ v7.0a \"

[HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ microsoft sdks \ windows \ v7.0a \ WinSDK-VSWin32Tools]
"Installationfolder" = "C: \ Program Files \ microsoft sdks \ windows \ v7.0a \"

[HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ microsoft sdks \ windows \ v7.0a \ winsdkintelliisenserefassys]
"Installationfolder" = "C: \ Program Files \ microsoft sdks \ windows \ v7.0a \"

The set of registry keys isn't complete for all past versions of the tools. to compute the path to earlier versions of the tools is awkward. that's because different versions ages use different paths (e.g. italian versions of Windows use c: \ programmi) and because users can themselves choose different paths (e.g. e: \ Apps ).

Notionally in VB you shoshould use my. computer. filesystem. specialdirectories. programFiles. this Returns "C: \ Program Files" or its equivalent, and works great most of the time. the only exception is if you're running on a 64bit operating system and your assembly is set to target "CPU: x86" rather than anycpu or x64. in this case it returns "C: \ Program Files (x86) "or its equivalent, which isn't any use.

Anyway, the Windows SDK tools use non-localized directory and filenames. so once you get to the path to the Program Files directory, You can append "\ microsoft sdks \ windows \ v6.0 \ bin \ ildasm.exe" or similar to point to a participant tool.

Where are the SDK tools? Where is ildasm?

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.