Q&A about the VC++ Intellisense QFE

Q&A about the VC++ Intellisense QFE

  • Comments 17

Hello

Last week, Jim announced the availability of the Intellisense fixes as a publicly downloadable QFE for Visual C++ 2005 SP1. Since then we have seen a number of customers install the QFE and we have especially enjoyed hearing about your successful experiences with the QFE. Jim has also recently blogged about macros to control the Intellisense functionality (enable/disable/etc) - here is the link to that entry: http://blogs.msdn.com/vcblog/archive/2007/11/19/controlling-intellisense-through-macros.aspx


There were some questions that I've seen asked several times (in the blog comments, the forum or via email) that I thought would warrant a one-stop-shop Q&A.

Q: Is this fix compatible with the XBox SDK?

A: The QFE is not compatible with the XBox SDK. Please don't install the QFE since this can break the XBox integration with Visual Studio.

Update: The Xbox team ported our changes and they are making them available in the November QFE release of the XDK you can download from the XBox 360 program website.

Q: I downloaded the QFE package but it refuses to install. Why doesn't it work on my machine?

A: The QFE will refuse to install in one of the following cases: (1) you don't have VS2005 SP1 installed on your machine (2) you have a localized version of Vs2005 SP1 (Italian/Korean/etc.)

    1. In the first case the refusal of the installation is expected and the only option you have is to upgrade to SP1.
    2. For the second case, you are running into an issue with the QFE package. We are working on a fix as we speak and expect to have a fixed QFE in December. We will be updating this blog entry when the new QFE package becomes available. Until then, a workaround is to replace the 3 binaries on your machine (vcproject.dll, vcprojectengine.dll, vcpkg.dll) with the ones from a machine with an English VS and the QFE installed (make sure you create copies of your binaries before overwriting in case you run into any issues and need to revert back to the originals).

Q: My installation never finishes. Is this a known issue?

A: We received several reports that the QFE installation on some computers can take between 15 minutes and 1 hour and consume a fair amount of RAM. Even if this is an undesirable behavior, it does not mean the installation froze or crashed. Save some time by launching the installation in the evening before leaving the office or at lunch time; the setup will prompt you with a confirmation message when the installation is complete.

If you are running into any issues that do not reproduce without the patch, please send us your feedback using the “Email” button at the top of this page.

I hope these help. Let us know if you have other questions.

Marian Luparu
Program Manager
Visual C++ IDE

  • Hi, is there a document somewhere that lists everything that's new in VS 2008 for c++ programmers?

  • Hello!

    I already wrote about my problem w/ the VC++ Intellisense QFE here: http://blogs.msdn.com/vcblog/archive/2007/11/12/performance-improvements-in-visual-c.aspx#6534391 (comments to "Performance Improvements in Visual C++" Jim Springfield's blog article).

    Let me repeat myself: QFE installer VS80sp1-KB943969-X86-ENU.exe is working and ending its work without any errors (installation has completed successfully). But vcproject.dll, vcprojectengine.dll, vcpkg.dll DLLs have NOT been updated. Their versions/dates were not changed. They remain the same as they were before installation started.

    When I run macros from "Controlling IntelliSense Through Macros" blog I get VS macros error:

    ---------------------------

    Error

    ---------------------------

    Value does not fall within the expected range.

    ---------------------------

    OK  

    ---------------------------

    Quote> ...Until then, a workaround is to replace the 3 binaries on your machine (vcproject.dll, vcprojectengine.dll, vcpkg.dll) with the ones from a machine with an English VS and the QFE installed...

    I unpacked VS80sp1-KB943969-X86-ENU.exe w/ 7-zip, extracted vcproject.dll, vcprojectengine.dll, vcpkg.dll DLLs and

    replaced "original" VC++ DLLs w/ the same names. After that I opened VC++ 2005 SP1 solution and I got the following errors:

    ---------------------------

    Microsoft Visual Studio

    ---------------------------

    Package Load Failure

    Package 'Visual C++ Project System Package' has failed to load properly ( GUID = {F1C25864-3097-11D2-A5C5-00C04F7968B4} ). Please contact package vendor for assistance. Application restart is recommended, due to possible environment corruption. Would you like to disable loading this package in the future? You may use 'devenv /resetskippkgs' to re-enable package loading.

    ---------------------------

    Yes   No  

    ---------------------------

    and

    ---------------------------

    Microsoft Visual Studio

    ---------------------------

    The application for project '<my_project_fullname>.vcproj' is not installed.

    Make sure the application for the project type (.vcproj) is installed.

    ---------------------------

    OK   Help  

    ---------------------------

    DLLs, which I "manually" extracted from VS80sp1-KB943969-X86-ENU.exe, have the same versions as files are described in article KB943969 (http://support.microsoft.com/kb/943969/en-us). i.e. were extracted well?

    I replaced DLLs at the following locations:

    * <VC_Install_Dir>\vcpackages

    * "C:\Program Files\Microsoft Visual Studio 8\VC\vcpackages"

    * <VC_Install_Dir>\bin\amd64

    Visual C++ is installed on partition D.

    Microsoft Visual Studio Professional 2005 is NOT localized -- it is English version w/ installed SP1.

    OS: Windows XP Professional x64 Edition Version 2003 Service Pack 2 (“Regional Options” are set to Russian; I have changed them to default English/United States, but it did not change anything).

    Please hint me what should I do?

    Thanks in Advance!

  • Brigadir,

    If no new dlls were installed on your machine it is expected that the macros won't work. What you are describing looks like a silent failure of the QFE install. We'd like to take a closer look at this issue.

    The second issue you are seeing after unpacking the dlls by hand is probably caused by a mismatch in the dlls platform - the QFE contains VCProjectEngine.dll for multiple platforms. Can you ensure that the version you copied in vcpackages is the x86 version? (the file size should be 2,890,240 bytes).

    You mentioned that you have VC installed on D drive, but you also mentioned having a "C:\Program Files\Microsoft Visual Studio 8\VC" folder. Did you create this folder by hand or was it created by the QFE?

    Can you provide the versioninfo for the dlls you had previously on your machine (vcproject, vcprojectengine and vcpkg)?

    Thanks,

    Marian

  • Im Rahmen der Entwicklung von Visual Studio 2008 ist auch ein Fix für Visual C++ 2005 SP1 herausgekommen.

  • Marian Luparu

    I get ahead of myself: the problem w/ _"updateless"_ QFE DLLs has been solved... But let me give You detailed explanation.

    > We'd like to take a closer look at this issue...

    Unfortunately, I did not have enough time to examine huge (almost 18 MBytes) the QFE installer log (VS80sp1-KB943969-X86-ENU-msi.0.log).

    Explicitly mentioned errors I found in that log were:

    a) DEBUG: Error 2745:  Transform T2_100ToU275_100 invalid for package C:\WINDOWS\Installer\3935d2.msi. Expected language 1036, found language 1033.

    There were a lot of such errors. They differed from each other by "transform id" (? i.e. T2_100ToU275_100) and by locales id (at "Expected language xxxx" expression)

    b) DEBUG: Error 2746:  Transform T2_11ToU260_11 invalid for package C:\WINDOWS\Installer\3935d2.msi. Expected product {324C61EA-256E-4DFD-BF2C-6D6E5A1271A0}, found product {437AB8E0-FB69-4222-B280-A64F3DE22591}.

    There were a lot of such errors too. Differed by "transform id" and "expected product" GUID.

    ----

    > "C:\Program Files\Microsoft Visual Studio 8\VC"

    I didn't create this folder by hand. It was created by Visual Studio 2k5 installer or Visual Studio 2k5 SP1 installer. I can not say now exactly. But I did not do that.

    Also I wrote that "Visual C++ is installed on partition D". I'm sorry, I meant: "Visual Studio is installed on partition D". But only VC++ is installed from all available Visual Studio's languages.

    ----

    > mismatch in the dlls platform

    Yes -- this was a source for "install the QFE DLLs by hands" problem.

    The solving was found by this way:

    Today, before I read Your last post, I got a chance to install the QFE on the same system as mine (Windows XP Professional x64 Edition Version 2003 Service Pack 2, Microsoft Visual Studio Professional 2005 ENU SP1). It is differed from my system only by CPU and RAM physical interface, but I think it does not matter. Of course, installed software on both PCs is different too.

    So, on that system VS80sp1-KB943969-X86-ENU.exe hotfix was installed w/o any errors BUT it successfully updated VCProject.dll, VCProjectEngine.dll, vcpkg.dll! And as You advised in this blog's article I replaced those three DLLs on my machine with successfully installed ones. After that Visual Studio on my machine is working fine.

    On second PC VCProjectEngine.dll was installed for x86 platform. When I extracted this DLL by hand I extracted version for x64! I thought this way: "I'm running on x64 OS. There is no x64 Visual Studio (IDE) exists (x86 *only*). So from three VCProjectEngine.dll versions from VS80sp1-KB943969-X86-ENU.exe hotfix I have to select x64 version". I was wrong.

    Please, if You have enough time, explain me why it is required the x86-version of VCProjectEngine.dll and why the QFE contains VCProjectEngine.dll for multiple platforms? How does target platform is selected when VCProjectEngine.dll is installed?

    ----

    To complete my answer I have to say that all three "old" DLLs I had previously on my system had the same version: 8.0.50727.762.

    ----

    Marian Luparu, thank You very-very much for Your help and attention!

    Thank VC team for the much work has been done.

    I'm sorry if this post was superfluously detailed or off-topic.

    Brigadir

    mailto:brigadir15 at gmail dot com

  • I've just installed the hotfix and it causes my IDE to become unusable. As soon as there is a project loaded, CPU usage jumps to 100% of one of my CPU cores, and just sits there. I've tried leaving it for a while, and I've tried deleting the NCB. I also run the latest version of the Whole Tomato. I've tried disabling that, but it doesn't make a difference.

  • Now I'm confused.  When I installed Visual Studio 2005 on x64 systems, Visual Studio stuff went into "Program Files x86" or whatever that directory name is.  I didn't notice any in the ordinary 64-bit "Program Files" directory.  But I didn't look at my C drive either, so I don't know if Visual Studio put some stuff on the wrong drive.

    Now I recall that a co-worker who only wanted to install Visual Studio 2005 on his C drive couldn't do it because of funny permissions on his D drive and Visual Studio 2005 insisted on mucking around where it didn't belong on his D drive.

    There are advantages to not installing any OS on a C drive.  There are advantages to not having any C drive at all -- a configuration which is oddly easier to construct with Vista than with XP.  But it's still not perfect.  Install DotNet Framework into the OS on D and it will corrupt the other OS on E, or vice-versa.

  • Hi Brigadir. I am glad you solved your installation problem. To answer your question about the 3 versions of VCProjectEngine.dll -

    Visual Studio is an x86 app, and it will always use the x86 VCProjectEngine.dll regardless of the platform it is run on. But VCProjectEngine.dll is also used by VCBuild.exe to build VC projects on the command line. For vcbuild.exe we have one version for each platform and the QFE is prepared to patch all of them (if you choosed to install the other platforms during VS setup you will have a ...\VC\bin\<platform_name> which contains a vcprojectengine.dll).

  • Ben Harper, a callstack would be useful to figure out who is monopolizing your CPU. Is it feacp.dll?

    Also, if you have a chance to try VS2008, run your scenario on the new release. What you are describing if it's an intellisense issue, looks like a correctness issue and there are additional fixes in VS2008 for this category of bugs.

    Thanks,

    Marian

  • About that problem I described-- It just kind of disappeared after a while, and I've got VS 2008 now, so all good. Thanks.

  • where can i download the QFE for Visual C++ 2005 SP1?

  • Hi,

    I have installed the fix on my VS 2005 Team Edition for Developers, and now VS periodically freezes when displaying "Updating Intellisence...(291)" in the status bar. VS stays freezed up and all unsaved work is lost :((((

    Can I uninstall the fix again, or is there a fix to the fix?

    Or perhaps I aught to reinstall VS :S

  • Rudi, we'd like to investigate the issue you're seeing. Can you send us additional information via email (memdump/callstack at the moment of the hang, your hardware config and OS)? Please contact me at: vcperf at microsoft dot com.

    Thank you,

    Marian

  • Thanks for the patch--it really helps, but the 8MB patch took 15 minutes to install on my machine!?!  The VS installer team has some real perf work to do there, the installer is obviously doing FAR more than it needs to do to install 8MB of new binaries.  I wish someone on the VS team would make that a priority (VS2005 SP1 took an insane amount of time to install too!).

  • Still waiting for DECEMBER update ....

Page 1 of 2 (17 items) 12