Visual Studio 2010 help system is missing index and full TOC

The new Visual Studio 2010 help system is missing index and full TOC. Transition from old good HTML help to new Web Browser Based Approach thing is painful, but the inability to search using index made this thing unusable.

Luckily, I am not alone, and people are talking about these shortcomings everywhere – Microsoft Connect, Microsoft Forums, etc.

Currently there are three options:

All three options are currently free.

Setup Project shows ‘WARNING: Could not find prerequisite’ under Visual Studio 2010

Visual Studio Installer (MSI) warning:
WARNING: Could not find prerequisite '.NET Framework 2.0 (x86)' in path 'C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bootstrapper\'

or

WARNING: Could not find prerequisite '.NET Framework 2.0 (x86)' in path 'C:\Program Files\Microsoft SDKs\Windows\v7.0A\Bootstrapper\'

The result is that automatic downloading of prerequisites does not work any more. This is caused by fact, that Visual Studio 2010 does not include:

  • .NET Framework 2.0
  • .NET Framework 3.0
  • .NET Framework 3.5 w/o SP1

There is discussion about this issue in VS2010 forum – Deployment project breaks on VS 2010 upgrade.

The suggested workaround is to use .NET Framework 3.5 SP1 Client Profile Prerequisite form available prerequisites under Setup project properties. This is some lightweight version of Microsoft .NET Framework.

If for some reason you do not want to use v3.5 framework, like, you do not want to force clients to download extra megabytes, you can copy needed Prerequisites from your Visual Studio 2008 folder.

From
"C:\Program Files (x86)\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Packages\"
to
"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Packages\"

under x64 bit Windows, or if you have 32-bit Windows version, use the following path:
"C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Packages\"
to
"C:\Program Files\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Packages\"

Folders:

  • DotNetFX is .NET Framework 2.0
  • DotNetFX30 is .NET Framework 3.0
  • DotNetFX35 is .NET Framework 3.5 w/o SP1

P.S. Do not forget a proper testing!

‘auto’ in C++ is the same as ‘var’ in C#

auto in C++ is the same as var in C#. Auto keyword is defined in upcoming C++ standard C++0x

The news is, that latest Microsoft Visual Studio C++ 2010 have support for this keyword. auto keyword has a new meaning – ‘declares a variable whose type is deduced from the initialization expression in its declaration’.

Old C++

std::vector intArray;
intArray.push_back(10);
intArray.push_back(20);
intArray.push_back(30);
std::vector::const_iterator iterator = intArray.begin();

New C++

std::vector intArray;
intArray.push_back(10);
intArray.push_back(20);
intArray.push_back(30);
auto iterator = intArray.begin();

As you see, ‘std::vector::const_iterator iterator’ becomes ‘auto iterator’. No more unnecessary typing.

The same concept in C# is available from version 3.0. Variables that are declared at method scope can have an implicit type var. An implicitly typed local variable is strongly typed just as if you had declared the type yourself, but the compiler determines the type. Reference.

P.S. Open source world are using auto keyword for at least a year. Support for auto keyword was added to GCC beginning from version 4.4.0