carpediemevive Posted December 7, 2011 Report Share Posted December 7, 2011 For other developers at my site who have this installed the windows shell integration works beautifully. For myself and a few others it does not. I'm at a loss as to how to troubleshoot it. No matter where I am (whether it be browsing workspaces or not) I don't see the "Plastic SCM" submenu for a right click. I also don't see folder icons for workspaces. I have done a full re-install but no luck. Any clue as to where to start looking? Link to comment Share on other sites More sharing options...
manu Posted December 7, 2011 Report Share Posted December 7, 2011 Hi carpediemvive, Can you tell us your machine environment, OS version and Service Pack? Obviously, but do you have the ShellExtension check box enabled at the installation time? Can you also tell us if the installer reboots the explorer process at the end of the installation? Regards, manu Link to comment Share on other sites More sharing options...
carpediemevive Posted December 7, 2011 Author Report Share Posted December 7, 2011 I'm running Windows XP, SP3. I do have the check box enabled and explorer does restart. I've also rebooted just to see if that would help bring it in, but unfortunately no such luck. Link to comment Share on other sites More sharing options...
manu Posted December 7, 2011 Report Share Posted December 7, 2011 Hi carpediemevive, thanks for the info. I'm going to send you an email with a couple of tools to perform the shell extension installation manually. First, open a command line window as Administrator. Run the following to unregister the ShellExtension: C:\Tools\lockdetector.exe "C:\YourPlasticSCMInstallDir\client" "C:\YourPlasticSCMInstallDir\server" C:\Tools\RegisterExtensionDotNet20_x64.exe -u C:\YourPlasticSCMInstallDir\client\shellextension.dll C:\Tools\RestartExplorer.exe Then we have to register it again: C:\Tools\lockdetector.exe "C:\YourPlasticSCMInstallDir\client" "C:\YourPlasticSCMInstallDir\server" C:\Tools\RegisterExtensionDotNet20_x64.exe -i C:\YourPlasticSCMInstallDir\client\shellextension.dll C:\Tools\RestartExplorer.exe Use the "RegisterExtensionDotNet20_x64.exe" or the "RegisterExtension.exe" depending if your machine is x64 or x86. Tell me the RegisterExtension output. Regards, Manu Link to comment Share on other sites More sharing options...
carpediemevive Posted December 7, 2011 Author Report Share Posted December 7, 2011 One question, if I only have the client installed should I just omit the references to the server directory and everything should work just the same? Link to comment Share on other sites More sharing options...
manu Posted December 7, 2011 Report Share Posted December 7, 2011 Yes, go ahead without the server path. Link to comment Share on other sites More sharing options...
carpediemevive Posted December 7, 2011 Author Report Share Posted December 7, 2011 It appears as though something is wrong with my shellextension.dll file. Here is the output of the two RegisterExtension commands: >c:\tools\RegisterExtension.exe -u "C:\Program Files\PlasticSCM4\client\shellextension.dll" COM Interop unregisteration of assembly failed!System.BadImageFormatException: The format of the file 'shellextension.dll' is invalid. File name: "shellextension.dll" at System.Reflection.Assembly.nLoad(AssemblyName fileName, String codeBase, Boolean isStringized, Evidence assemblySecurity, Boolean throwOnFileNotFound, Assembly locationHint, StackCrawlMark& stackMark) at System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Boolean stringized, Evidence assemblySecurity, StackCrawlMark& stackMark) at System.Reflection.Assembly.LoadFrom(String assemblyFile, Evidence securityEvidence, Byte[] hashValue, AssemblyHashAlgorithm hashAlgorithm) at RegisterExtension.Class1.UnRegasmAssembly(String assembly) Fusion log follows: === Pre-bind state information === LOG: Where-ref bind. Location = C:\Program Files\PlasticSCM4\client\shellextension.dll LOG: Appbase = c:\tools\ LOG: Initial PrivatePath = NULL Calling assembly : (Unknown). === LOG: Policy not being applied to reference at this time (private, custom, partial, or location-based assembly bind). LOG: Attempting download of new URL file:///C:/Program Files/PlasticSCM4/client/shellextension.dll. >c:\tools\RegisterExtension.exe -i "c:\Program Files\PlasticSCM4\client\shellextension.dll" Running as : 32-bit Processing file : c:\Program Files\PlasticSCM4\client\shellextension.dll COM Interop registeration of assembly failed!System.BadImageFormatException: The format of the file 'shellextension.dll' is invalid. File name: "shellextension.dll" at System.Reflection.Assembly.nLoad(AssemblyName fileName, String codeBase, Boolean isStringized, Evidence assemblySecurity, Boolean throwOnFileNotFound, Assembly locationHint, StackCrawlMark& stackMark) at System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Boolean stringized, Evidence assemblySecurity, StackCrawlMark& stackMark) at System.Reflection.Assembly.LoadFrom(String assemblyFile, Evidence securityEvidence, Byte[] hashValue, AssemblyHashAlgorithm hashAlgorithm) at RegisterExtension.Class1.RegasmAssembly(String assembly) Fusion log follows: === Pre-bind state information === LOG: Where-ref bind. Location = c:\Program Files\PlasticSCM4\client\shellextension.dll LOG: Appbase = c:\tools\ LOG: Initial PrivatePath = NULL Calling assembly : (Unknown). === LOG: Policy not being applied to reference at this time (private, custom, partial, or location-based assembly bind). LOG: Attempting download of new URL file:///c:/Program Files/PlasticSCM4/client/shellextension.dll. I'm going to redownload the installer and run it again see if that works for me. Link to comment Share on other sites More sharing options...
manu Posted December 7, 2011 Report Share Posted December 7, 2011 I'm going to test it too. Which version are you going to use? Link to comment Share on other sites More sharing options...
carpediemevive Posted December 7, 2011 Author Report Share Posted December 7, 2011 I'm re-installing 4.0.237.2 right now. Link to comment Share on other sites More sharing options...
carpediemevive Posted December 7, 2011 Author Report Share Posted December 7, 2011 I did the re-install and got the same error with still no explorer integration. Link to comment Share on other sites More sharing options...
psantosl Posted December 7, 2011 Report Share Posted December 7, 2011 The thing seems related to the following: - Do you have a 64bits OS?? - Or is it a 64 bits OS but running Explorer on 32 bits?? Check whether explorer is running on 32 or 64. The issue must be related to this. It is easy to fix (you can do it saying how the assemblies should be run, a simple command) but we need to understand why it is not working by default. Link to comment Share on other sites More sharing options...
carpediemevive Posted December 7, 2011 Author Report Share Posted December 7, 2011 I went to http://support.microsoft.com/kb/827218 to double check myself and under system properties (Method 1) I see "Microsoft Windows XP Professional Version 2002 Service Pack 3" which to me would indicate 32. Then system information (Method 2) shows my process as "x86 Family 6 Model 23 Stepping 10 Genuineintel ~2925 Mhz" which would also indicate 32 bits. I am with you it would seem a 32 vs 64 bit problem, but I just can't see 64 bit anywhere. Just for the fun of it, I tried to run the 64 bit to register the DLL and that didn't work either. It gave me the following error: c:\tools\RegisterExtensionDotNet20_x64.exe is not a valid Win32 application. Link to comment Share on other sites More sharing options...
psantosl Posted December 9, 2011 Report Share Posted December 9, 2011 Did you copy/paste the error? I see a mispelled "COM Interop unregisteration" there... It can be the library we use for interop. Definitely it thinks the DLL is for the wrong OS. Can you check if the faulty dll is 32 or 64? Link to comment Share on other sites More sharing options...
carpediemevive Posted December 9, 2011 Author Report Share Posted December 9, 2011 I did copy and paste the error, not sure where the misspell happened. I ran a dumpbin from visual studio on the DLL and this is the output from the File Headers portion: Microsoft (R) COFF/PE Dumper Version 9.00.30729.01 Copyright (C) Microsoft Corporation. All rights reserved. Dump of file shellextension_bad.dll PE signature found File Type: DLL FILE HEADER VALUES 14C machine (x86) 3 number of sections 4ED4B5F6 time date stamp Tue Nov 29 05:37:42 2011 0 file pointer to symbol table 0 number of symbols E0 size of optional header 2102 characteristics Executable 32 bit word machine DLL To my understanding, based on the first line of file header values, this would be a 32 bit DLL. Link to comment Share on other sites More sharing options...
carpediemevive Posted December 9, 2011 Author Report Share Posted December 9, 2011 I opened up the DLL in a hex editor and walked my way through the structures and it does appear that I'm seeing the ox014c value showing me this is a 32 bit DLL. I compared it with another DLL that I made and use as a library and the headers match and both show that 0x014c value for 32 bit DLLs. Link to comment Share on other sites More sharing options...
psantosl Posted December 9, 2011 Report Share Posted December 9, 2011 Then I'm a little bit lost here. You're on a 32 bits Windows XP, SP3. You know, is a rather old beast but I don't think there's a reason why it shouldn't work. Part of my team is out on vacation today. What if you reach me by email and we schedule a session on Monday? Email me to psantosl at codicesoftware.com Link to comment Share on other sites More sharing options...
carpediemevive Posted December 9, 2011 Author Report Share Posted December 9, 2011 I can't wait to get rid of these XP machines, but I'm reliant on someone else to roll that out unfortunately. Sounds great I'll e-mail you. Link to comment Share on other sites More sharing options...
carpediemevive Posted February 23, 2012 Author Report Share Posted February 23, 2012 I finally fixed this!! Sorry for the post on such an old topic, but I decided to poke around on this for a while and figured out what was going on. For some reason it was attempting to do the binding using my .NET 1.0 installation instead of the 2.0 installation. During installation I removed the 1.0 and 1.1 folders from C:\WINDOWS\.NET\Framework and it worked beautifully. I then put them back and the integration seems to work just fine now. Finally put this one to rest. Link to comment Share on other sites More sharing options...
manu Posted February 23, 2012 Report Share Posted February 23, 2012 Hehehehehe That's a good one! Great to hear it's working now! EDIT: Thanks for sharing the resolution! Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.