Hello
Im trying to run my win application that uses Microsoft.VisualStudio.SourceSafe.Interop.dll on a computer without VSS installed.
First off, I got the "CLSID {783CD4E4-9D54-11CF-B8EE-00608CC9A71F} failed". I got rid off this by running regsvr32 ssapi.dll (copied from the development computer).
Trying my luck again, I get a message box titled Visual Source Error, saying: "A required resource cannot be found on your computer. To resolve this issue, run setup to repair your Visual SourceSafe installation." And an exception: System.Runtime.InteropServices.COMException: Error HRESULT E_FAIL has been returned from a call to a COM component.
This occurs when i try to open the css database.
Is it possible or recommended to utilize the Microsoft.VisualStudio.SourceSafe.Interop.dll assembly on any computer I dont want every user of my app to install sourcesafe.
thanks

How to get win app to work using Microsoft.VisualStudio.SourceSafe.Interop.dll running on a computer without VSS installed
Kellyho
The resource file missing was in fact the ssui.dll library found at \1033\ssui.dll relatively do the original ssapi.dll. One thing to make sure when you include this to your project is to ensure this library will be installed relatively to the ssapi.dll by changing it's register field (on the dll) to vsdrfCOMRelativePath. Once that is done, change its location in your deployment setting to the folder \1033\ in the folder containing ssapi.dll.
So the final deployment figure looks somehow like this for my app : in the same folder as most of my dlls and my exe is the ssapi.dll. In the same folder is a folder named 1033 which solely contains the ssui.dll library. With this setup, my setup works on both a machine running VSS and a machine not running it. Problem solved :-)
Another question has come to my attention though as I was testing my 2 setups. On my local machine (which is running VSS), my application seems to be using my usual VSS account automatically. For example, if I call VSSDatabase.Open with both the username and password set to "", it still connects. If I simply put my username and no password, works again. If I put my username and a wrong password, works again. On the other hand, if I put a wrong username or a good username with a bad password, then it doesn't work. I think you get the pattern :-p
So my question is the following. Is there any way to disable this functionnality or to overwrite it What I would like to see happen is my application failing to connect if I leave it blank for example, or if I put in a wrong password.
Another detail... On the machine that is not running VSS, everything works accordingly since I assume there is no "current user" information saved anywhere. Furthermore, this machine is not in the same domain as the other machine, domain in which VSS is set up.
Thoughts, ideas Thanks again!
AlexanderS
Once I have deployed my application with the ssapi.dll set to true at Local, neither that version or the live one from VS works with the error stated earlier. Now, if I run "REGSVR32 "C:\Program Files\Microsoft Visual SourceSafe\ssapi.dll", everything starts to work again but if I run this command on my newly installed dll, it doesn't do any good.
My guess is I'm missing something in my install, some files that ssapi.dll relies on. But I'm in the same situation as the first poster in this thread and I require this application to work on both stations where VSS is installed and is not installed. Any help would be greatly appreciated. I'll keep u updated if I find anything else.
Thanks!
MikeBe
My application lets u select two labels from sorucesafe and returns comments from all checked in items between the two labels.
This is used for example by projekt manager which isnot a developer, hence no VSS installed :)
DBA_374
You need to deploy Microsoft.VisualStudio.SourceSafe.Interop.dll to you application folder or add it to GAC (use C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin\gacutil /i)
You could also use C:\Program Files\Microsoft Visual Studio 8\Common7\Tools\Bin\depends.exe to see if some of the dependencies missing.
dham
I was wondering if you had found an answer to this problem for I just went through the exact same steps as you did. Slight difference, on my second attempt I removed my reference to Microsoft.VisualStudio.SourceSafe.Interop.dll and replaced it by ssapi.dll. That removed part of the problem just as it did for you to a point where I can actually load the dll but it crashes with the same error when I try to connect "resource missing".
This is installed on the same computer that I am programming it from so I know all the proper resources are present (it works from VS in debug or release). Somehow, it seems as it installs, it loose a reference to some resource file
Thanks
Bradrover
Rassol,
What does your application do, and why do you need to have the Source Safe interop assembly on the machine without VSS installed
Neil
karch146802
Does this mean we should not bundle Interop dlls with VSS automation applications/products I have seen products doing this but It will be nice to know if it is the right way.
Thanks!