ptbernar

I am having difficulty certifiying my application for windows vista.

According to Test Case 23, the application must roll-back all changes to the user's computer in order for the test case to pass.

I am use the MFC, ATL and CRT merge modules to redistribute the C++ libraries needed by my application. When I test my application against test case 23, I find that the DLL files installed by the merge modules are not removed from the machine.

I do not understand how I am to get my product certified for Windows Vista as it seems the recommended approach for redistributing the C++ libraries forces my application to fail the certification test case

Does anyone have any suggestions How do I get around this issue

I do not want to redistribute the VCRedist_x86.exe and force my users to install ALL of the visual studio DLL files.

Is my only option to Install a particular Visual C++ assembly as a private assembly for the application This does not seem correct to me, if MS recommends using merge modules for redistributing libraries, I would expect that using merge modules should not prevent my applicaiton from being Certified for Vista.

Any help is much appreciated.

Cheers.



Re: Application Compatibility for Windows Vista Merge Modules & Vista Certification (Test Case 23)

RexH

I have been struggling with this issue for months and no one from Microsoft can provide a definite answer to that !






Re: Application Compatibility for Windows Vista Merge Modules & Vista Certification (Test Case 23)

Bruce N. Baker - MSFT

Unfortunately there is no recommended solution (I don't make them, I just talk about what is delivered)

Currently:

"....We (an unidentified group in Microsoft) are suggesting partners to deploy outside the merge-module to avoid TC 23 failure for VC msm. However, this process (deploying as private assembly) is not recommended for deploying on Win 2000.

As suggested in the MSDN article http://msdn2.microsoft.com/en-us/library/ms235317(VS.80).aspx in the section Procedures for deploying Visual C++ library DLLs as private assemblies ¨C

"On an operating system that does not support manifest-based binding (Windows 95, Windows 98, Windows 98 Second Edition, Windows Millennium Edition, Windows 2000), this deployment method is not recommended."

...."






Re: Application Compatibility for Windows Vista Merge Modules & Vista Certification (Test Case 23)

Esrar Chowdhury

I was struggling with this issue too. Then I created a "rollback custom action" as opposed to a deferred custom action and sequenced it in the Install>Execute sequence with a value of 2400. This rollback custom action executes only in the event of a rollback and deletes the Microsoft CRT, MFC files that I install in the WinSXS directory via merge modules.

My rollback custom action calls a function that deletes a total of six folders containing all the MFC, CRT files that I install. I trigger a rollback by putting a bad file in my install package. If I don't put the bad file and create a good install package to not have a rollback during the install, my application gets installed properly and my MFC, CRT remain in the WinSXS directory.





Re: Application Compatibility for Windows Vista Merge Modules & Vista Certification (Test Case 23)

Bruce N. Baker - MSFT

You might have an issue with danging registry entries if you do that, did you compare registry entries before and after you run your installation (on a clean install of your product on a machine without the MFC, CRT files having already been installed before then deleted).




Re: Application Compatibility for Windows Vista Merge Modules & Vista Certification (Test Case 23)

Esrar Chowdhury

Bruce, thanks for the heads up.

I did try my install on a clean machine. But I am not aware of any registry issues and did not compare registry entries before and after.

Could you please elaborate on the issue with "dangling registry entires".

If my solution does not workout due to the dangling registry issue as pointed out by you, what would you suggest that I do to deal with the situation of removing merge module installed CRT, MFC files during a rollback so that I can pass Tase Case 23

Appreciate your help.




Re: Application Compatibility for Windows Vista Merge Modules & Vista Certification (Test Case 23)

Blackbird101

I have the same issues here, however, it appears that so far nobody has mentioned another issue that is connected to the one discussed: The files contained in the merge modules are not digitally signed. This is true, at least, in the case of files MSVCRP71.DLL, MSVCRT71.DLL, MFC71.DLL, ATL71.DLL from the Visual Studio .NET (2003) development environment. Could somebody from MSFT make suggestions how to proceed. Are waivers possible ( It does not seem making a lot of sense that the organization responsible for imposing those certification requirements would not sign its own binary files which it releases for re-distribution ).

Best regards!





Re: Application Compatibility for Windows Vista Merge Modules & Vista Certification (Test Case 23)

mrgandra

I have made a conditional install of VC++ Merge Modules on Vista. I wont install the VC++ 8 Merge Modules on vista as they already have them preinstalled. I created a Feature and added the merge module to that and the feature has condition not to install if the operating system is Vista.

I have my setup Vista certified.

Madhukar