Visual C++ team has discovered that after installing the current release of Internet Explorer (Internet Explorer 8), some VC++ wizards do not function correctly. The products affected are Visual Studio 2005 and Visual Studio 2008. Following are the affected wizards:
- Add Function
- Add Variable
- Smart Device – New Project Creation
- Smart Device – Add Class
Invoking any of the above wizards in VS2005 or VS2008 will pop up a script error if IE8 is installed on the machine. We have a workaround for those who have encountered this error.
Please follow the following steps:
- Open regedit (on a 64-bit OS, open the 32-bit regedit)
- Under “HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones”, create a new key called 1000 (if it isn't already there)
- Under 1000, create a DWORD entry with:
o Name = 1207
o Type = REG_DWORD
o Data = 0x000000
For the workaround to work on VS2005 however, the VS2005 SP1 (and VS2005 SP1 Update for Windows Vista) has to be installed.
Following is a brief explanation of the problem and the workaround:
The VC++ Wizards Engine implements the IInternetSecurityManager interface. In this implementation it allows or disallows specific actions under certain policies that Internet Explorer queries it about. In IE8 a custom Security Manager now also gets queried about the URLACTION_ACTIVEX_OVERRIDE_REPURPOSEDETECTION policy which IE previously did not delegate to custom security managers when the engine wasn’t running in the iexplore.exe process. The IE engine then fails this action because we don’t have a policy entry for it in the custom zone for VC++ Wizards. We are still investigating whether this change in IE8 is by design and will possibly be addressing it by a fix in either the Wizard or IE components depending on the outcome.
The above workaround lets the policy 1207 (URLACTION_ACTIVEX_OVERRIDE_REPURPOSEDETECTION) to be allowed in zone 1000 (custom zone of VC++ Wizards engine). This allows the wizard code to work as intended.
We apologize for the inconvenience this issue may have caused you.
Visual C++ Team
The Internet Explorer team has released a security update to IE as mentioned in the IE blog:
This update also fixes the problem that caused some Visual Studio wizards to pop up a script error. After applying this update, the earlier workaround in the registry is no longer required, and the wizards should work fine.
OK I figured it out.
I typed '1027' in stead of '1207' in the registry.
Very sorry about this noob behaviour, I have my sys admin to thank for pointing that out.
Windows 7 때문에 어쩔 수 없이 사용하게 된 IE 8 때문에 여러모로 거슬린다. Visual C++ 2005 에서 Wizard 대화상자 Script Error, Visual C++ Team Blog에서 해결
Thanks! It happens with the MFC Class Wizard too. This workaround fixed my issue!
Yahooo !!! It worked... I didn't quite understand why we should make those changes in REGEDIT... But, it worked... & I can continue with my ATL COM project now... Thank VC++ team :)
-Vikram Ganesh H
There is a similar issue on the C# (Windows Forms) side as well.
If you open a Form in the designer and if there are any errors usually you will see a list of error with exception messages etc. But with IE8 installed you get raw html in a text-box! I believe this patch helps there as well.
Thanks very much！I was a test memeber for the version of visual studio 2008. In fact,I am dwelling in this error for a long time.However,I can't solve it.since IE8 installed, the problem occured.Until now,I know where the problem is! Fortunately,this little work is really helpful for my coming burden in application design process! THANKS AGAIN! I am glad for your further help!
Does it mean that the IE development team do NOT use VS? That's ironic.
I have the same issue as Jack. This registry addition did not fix it for me.
I am running VS 2008 SP1 on Vista X64 and I made my changes by using regedt32 (which opens the same editor as regedit). This is blocking my work. Please help.
I opened a MSDN case just to find out about this problem. I had installed IE8 before installing VC8, so was not sure what was causing the problem. After I uninstalled IE8, I stopped getting the script error on Dialog box screen.
Another problem that I found out, and the MS support person who worked on this is aware of it, is when you convert the project from VC2003 to VC8 and then try to convert .sln to VC 2005, you get in linking issue where VC2005 project is looking for msvc90.lib (which is vc8 library).
MS seems to have screwed up big time with all these different devlopement tools (mind you they have a new one every 2 years) and they have done absolutely pathetic job on doing any compatibility testing.
Also MS did not refund my MSDN case for this indeed appear to be their issue.
Uninstallation IE8 solves the problem. It's a shame for MS.
For those of you still running into the issue of the Smart Device Native Project, I am setting up some machines to get a repro scenario to offer some alternate solution.
With the fix applied VS2008 works. But...
When working on a MFC VC++ project, adding a static text to an dialog resource, I'm not able to change the caption! The caption property appears as an combobox, allowing true or false. It should be an textfield.
Deinstalling IE8 and reverting to IE7 solves this problem.
Platform: Windows Vista Ultimate (32) / VS2008 / All pathes applied.
just tried to repro your steps but I had no problems with VS2008 and static text controls.
Neither existing nor new ones show any problems to change the caption from the properties tool window.
It seems that the VS help app has the same scripting error as well.