Windows XP Professional x64 Edition 에서 열심히 Visual Source Safe Automation 기능을 이용해서
C#으로 툴을 만들고 실행을 했더니만..
계속 VSSDatabase 를 new 하는 곳에서 COMException 발생..
뭐 이런게 다있나 싶어서 Registry 에 등록된 정보도 수정해보고.. regsvr32도 다시해봤으나.. 모두 무산!
결국엔 이런 문제였다는걸 알고 가슴이 좀 아프긴 했으나 얼른 수정해서 돌려보았습니다.

글에 등록되어 있는 링크들은 현재 페이지를 참조하지 않고 있으니, 참고하시기 바랍니다.
누르면.. 바로 kbalertz 로 날아갑니다~~~

Link from : http://kbalertz.com/952691/Automation-fails-Windows-Operation-System.aspx

Microsoft Knowledge Base Article

This article contents is Microsoft Copyrighted material.
©2005-©2007 Microsoft Corporation. All rights reserved. Terms of Use | Trademarks

Article ID: 952691 - Last Review: May 5, 2008 - Revision: 1.1

VSS Automation code fails on 64-bit Windows Operation System

Expand all | Collapse all
Source: Microsoft Support

RAPID PUBLISHING

RAPID PUBLISHING ARTICLES PROVIDE INFORMATION DIRECTLY FROM WITHIN THE MICROSOFT SUPPORT ORGANIZATION. THE INFORMATION CONTAINED HEREIN IS CREATED IN RESPONSE TO EMERGING OR UNIQUE TOPICS, OR IS INTENDED SUPPLEMENT OTHER KNOWLEDGE BASE INFORMATION.

Action

You are using Visual Studio 2005 or Visual Studio 2008 to develope an application that implements Visual SourceSafe automation.

Result



You find that the code compiles on a 32-bit Windows operating system but fails on a 64-bit Windows operating system with the error:

Retrieving the COM class factory for component with CLSID {783CD4E4-9D54-11CF-B8EE-00608CC9A71F}
failed due to the following error:  80040154

Cause

The code in Visual Studio was compiled in 64-bit by default. Visual SourceSafe is a 32-bit application; therefore, you get an error.

Resolution



Alter the build parameters of Visual Studio to build the code in 32-bit.  To make this change, do the following:
  1. Choose Build from the menu then click Configuration Manager.
  2. Change Active Solution Platform to <New>. 
  3. Change "Type or Select the new platform" to x86 in the New Solution Platform dialog.
  4. Recompile the code project.

More Information



Compiling a simple VS 2005 Visual Basic .Net console application with this code demonstrates the problem:

Module Module1
Sub Main()
Dim vssDatabase As New VSSDatabase
Dim vssProject As IVSSItem
End Sub
End Module

DISCLAIMER

MICROSOFT AND/OR ITS SUPPLIERS MAKE NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY, RELIABILITY OR ACCURACY OF THE INFORMATION CONTAINED IN THE DOCUMENTS AND RELATED GRAPHICS PUBLISHED ON THIS WEBSITE (THE “MATERIALS”) FOR ANY PURPOSE. THE MATERIALS MAY INCLUDE TECHNICAL INACCURACIES OR TYPOGRAPHICAL ERRORS AND MAY BE REVISED AT ANY TIME WITHOUT NOTICE.

TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, MICROSOFT AND/OR ITS SUPPLIERS DISCLAIM AND EXCLUDE ALL REPRESENTATIONS, WARRANTIES, AND CONDITIONS WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT LIMITED TO REPRESENTATIONS, WARRANTIES, OR CONDITIONS OF TITLE, NON INFRINGEMENT, SATISFACTORY CONDITION OR QUALITY, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, WITH RESPECT TO THE MATERIALS.

APPLIES TO
  • Microsoft Visual SourceSafe 2005 Standard Edition
  • Microsoft Visual SourceSafe 6.0d
  • Microsoft Visual SourceSafe 6.0C

+ Recent posts