Visual Studio Developer Center > Visual Studio Forums > Visual Studio Source Control and SourceSafe > How do I deploy VSSEvents.dll built for VSS automation?
Ask a questionAsk a question
 

AnswerHow do I deploy VSSEvents.dll built for VSS automation?

  • Tuesday, June 05, 2007 1:40 PMKproject Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     

    Hi

     

    I've been testing VSS automation recently with VSS explorer and finally everyting worked fine.

    However, it only works with my machine where I built the dll, nowhere else.

     

    To narrow down the issue, I built executable and it worked everywhere.

    I checked http://blogs.msdn.com/richardb/archive/2007/05/09/deploying-sourcesafe-automation-on-clean-machines.aspx where he explains how to install it in clean machine.

     

     Again, my VSSEvents.dll is a com library plugged into VSS explorer.

     Is there anything that I missed? I put the messagebox in the Init method and everywhere, but it never prompts?

     

    Any help would welcomed!

     

Answers

  • Wednesday, June 06, 2007 7:45 PMKproject Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     Answer

    Well, everything works perfect now.

    I had to use regasm.exe to register com interop dll.

    Here is the command I used.

     

    "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\RegAsm.exe" "C:\Program Files\Microsoft Visual SourceSafe\VSSEvents.dll"

     

     

All Replies

  • Tuesday, June 05, 2007 4:07 PMRichard BergModeratorUsers MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     
    That article is for applications that load IVSS as a COM library and use it to automate sourcesafe operations.  It sounds like you're doing the opposite: building your own component and letting ssexp.exe load it.

    First of all, you obviously need to install SourceSafe on each  machine for ssexp to work.  (My article was for "clean" machines where people don't want to install SourceSafe).  Then, you must register your component with COM: regsvr32 vssevents.dll.  There may be another step required to register it with ssexp but I have not tried this before. 
  • Tuesday, June 05, 2007 4:33 PMKproject Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     

    First, thanks Richard.

     

    It seems that my explaination wasn't clear. Here I will make it simpler.

     

    1) I created com library c#.net project and built VSSEvents.dll

    2) Placed the dll into [C:\Program Files\Microsoft Visual SourceSafe] where there exists ssapi.dll.

    3) ssaddin.ini was added to the same folder as explained in the example.

    4) Opened VSS explorer and my functionality woked. Prompts and some other tasks.

    5) I installed it in the ohter two computers where they have VSS2005, but it didn't work at all.

    6) For testing, I create console c#.net project and built VSSTest.exe and put some codes using IVSS.

    7) Tried VSSTest.exe in the other computers. They worked.

     

    My VSSEvents.dll does not have DllRegisterServer method, so it cannot be registered.

    Did I miss something? I checked on Reister COM Interop option in my project, but anything else required?

     

    Thanks!

     

     

  • Tuesday, June 05, 2007 8:30 PMRichard BergModeratorUsers MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     
    I see.  So you're following this guide?

    Have you deployed the ssaddin.ini file on the other machines?

    If you run VSS explorer under a debugger, do you see it load your module?
  • Wednesday, June 06, 2007 2:54 AMKproject Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     

    Yes, I did deploy ssaddin.ini with VSSEvents.dll.

    However, it doesn't seem to be loaded. In my feeling, it's no.

     

    Sorry, I'm not sure how I can run VSS explorer under a debugger?

    Assuming the other computers do not have VisualStudio, can you give me a link or a keyword with which I can search online regarding such a debugging process? 

    Thanks again Richard. I really appreicate your quick responses.

     

     

  • Wednesday, June 06, 2007 3:07 PMKproject Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     

    O.k, as I guessed, the dll is not being loaded.

    I've downloaded listdll utility and opened VSS explorer.

    In my computer, VSS explorer loads VSSEvents.dll.

    In the ohter computers, it doesn't load.

     

  • Wednesday, June 06, 2007 7:45 PMKproject Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     Answer

    Well, everything works perfect now.

    I had to use regasm.exe to register com interop dll.

    Here is the command I used.

     

    "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\RegAsm.exe" "C:\Program Files\Microsoft Visual SourceSafe\VSSEvents.dll"