-
Notifications
You must be signed in to change notification settings - Fork 300
Installing
The easiest way to use Rubberduck is to download the latest installer from our releases page. You can choose:
If you want to contribute to the project, please see the Contributing page.
- Microsoft .NET Framework 4.6
- Windows Vista Service Pack 2 or Windows 7 Service Pack 1 or higher
- Windows Vista RTM, Windows Vista SP1 and Windows 7 RTM are not supported
- Windows prior to Windows 10 may require installation of the .NET framework
Rubberduck is "officially" supported in the following VBE hosts:
- Microsoft Office 2007 or higher
- Microsoft Visual Basic 6 SP6
The add-in has been reported to work in Office 2000/2003 as well as a number of other non-Office hosts and we try to not restrict the add-in to any particular host. That said, we regularly test and develop against one of those host application:
- Microsoft Office Excel
- Microsoft Office Access
- Microsoft Office Word
- Microsoft Office PowerPoint
For that reason, we can't guarantee 100% compatibility with all hosts. If you do find an issue, by all means, please share on GitHub!
NOTE: Not all VBA hosts may support per-user installation. This has been tested on most VBA hosts but there are at least one known case where this doesn't work and requires an admin install (Sage in this case). However, Office hosts should work.
The Rubberduck installer does not require administrative privileges to install if you use the per user mode. Administrative privileges is only required if you want to install for all users on the same machine, notably to register the COM types that enable the unit testing feature. Because VBE add-ins need to be registered under the HKCU registry hive, the installer will create the Addins
key for the admin user that is running the installer.
When running the installer for per-user mode, the installer will register the add-in for you. However, it cannot register for other users on the machine. Therefore, to register the add-in for a non-admin user who didn't install the Rubberduck but can access it on the same machine, the user needs to run Register VBE Add-in
under the start menu to enable the user of Rubberduck for their profile.
If you want to create a login script and use it as a company-wide policy, the following PowerShell commands may be helpful in doing the equivalent:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
New-Item -Path 'HKCU:\Software\Microsoft\VBA\VBE\6.0\AddIns\Rubberduck.Extension' -Force
New-ItemProperty -Path 'HKCU:\Software\Microsoft\VBA\VBE\6.0\AddIns\Rubberduck.Extension' -Name Description -PropertyType String -Value 'Rubberduck'
New-ItemProperty -Path 'HKCU:\Software\Microsoft\VBA\VBE\6.0\AddIns\Rubberduck.Extension' -Name FriendlyName -PropertyType String -Value 'Rubberduck'
New-ItemProperty -Path 'HKCU:\Software\Microsoft\VBA\VBE\6.0\AddIns\Rubberduck.Extension' -Name LoadBehavior -PropertyType DWord -Value 3
New-Item -Path 'HKCU:\Software\Microsoft\VBA\VBE\6.0\AddIns64\Rubberduck.Extension' -Force
New-ItemProperty -Path 'HKCU:\Software\Microsoft\VBA\VBE\6.0\AddIns64\Rubberduck.Extension' -Name Description -PropertyType String -Value 'Rubberduck'
New-ItemProperty -Path 'HKCU:\Software\Microsoft\VBA\VBE\6.0\AddIns64\Rubberduck.Extension' -Name FriendlyName -PropertyType String -Value 'Rubberduck'
New-ItemProperty -Path 'HKCU:\Software\Microsoft\VBA\VBE\6.0\AddIns64\Rubberduck.Extension' -Name LoadBehavior -PropertyType DWord -Value 3
This is now included in the release as a shortcut in the start menu folder or at C:\ProgramData\Rubberduck\Rubberduck.RegisterAddIn.bat
There's the odd chance that, despite following all of the above steps, you bring up the VBE and see this after installing:
It seems sometimes, the installer fails to correctly register Rubberduck's COM types, for a reason that remains to be found.
There's an easy fix though. NOTE: This requires admin privilege because it will write to the HKLM hive:
Note: the bitness of your OS is irrelevant.
Bring up an administrative command prompt (cmd.exe
), and execute one of the following commands:
32-bit host:
c:\windows\microsoft.net\framework\v4.0.30319\regasm.exe "(path to install folder)\rubberduck.dll" /codebase /tlb
64-bit host:
c:\windows\microsoft.net\framework64\v4.0.30319\regasm.exe "(path to install folder)\rubberduck.dll" /codebase /tlb
You should see these output messages:
Microsoft .NET Framework Assembly Registration Utility version 4.6.1038.0 for Microsoft .NET Framework version 4.6.1038.0 Copyright (C) Microsoft Corporation. All rights reserved.
RegAsm : warning RA0000 : Registering an unsigned assembly with /codebase can cause your assembly to interfere with other applications that may be installed on the same computer. The /codebase switch is intended to be used only with signed assemblies. Please give your assembly a strong name and re-register it.
Types registered successfully
There is another method available to verify your Rubberduck settings on your local PC/Laptop's registry.
We have a Powershell script is available at https://raw.githubusercontent.com/PeterMTaylor/RDVBAUtility/master/Search-Registry.ps1
which can be copied raw and saved on your PC/Laptop.
By running this command .\Search-Registry.ps1 -StartKey HKLM:\SOFTWARE -Pattern Rubberduck -MatchData
will list all settings across various keys associated with term "Rubberduck" that are recorded in your registry.
The following output shows a Powershell script example displaying entries found in the registry. At times, will display a red message that certain entries are not permitted, this is a normal operation as we cover all aspects to verify settings.
ComputerName Key Value Data
MY-PC HKLM\SOFTWARE\Classes\Record{0322CB26-883A-31C7-950A-BC7E34F31195}\2.0.0.38498 Class Rubberduck.API.DeclarationType
MY-PC HKLM\SOFTWARE\Classes\Record{0322CB26-883A-31C7-950A-BC7E34F31195}\2.0.0.38498 Assembly Rubberduck, Version=2.0.0.38498, Culture=neutral, PublicKeyToken=null
MY-PC HKLM\SOFTWARE\Classes\Record{0322CB26-883A-31C7-950A-BC7E34F31195}\2.0.0.38498 CodeBase file:///C:/Users/Peter/Dropbox/Doing/Github/Rubberduck/RetailCoder.VBE/bin/Debug/Rubb...
MY-PC HKLM\SOFTWARE\Classes\Record{F7B1C678-2328-3F28-8686-224E71C23C8A}\2.1.2.2693 Class Rubberduck.API.VBA.Accessibility
MY-PC HKLM\SOFTWARE\Classes\Record{F7B1C678-2328-3F28-8686-224E71C23C8A}\2.1.2.2693 Assembly Rubberduck, Version=2.1.2.2693, Culture=neutral, PublicKeyToken=null
MY-PC HKLM\SOFTWARE\Classes\Record{F7B1C678-2328-3F28-8686-224E71C23C8A}\2.1.2.2693 CodeBase file:///C:/ProgramData/Rubberduck/Rubberduck.DLL MY-PC HKLM\SOFTWARE\Classes\Rubberduck.AssertClass Rubberduck.UnitTesting.AssertClass
MY-PC HKLM\SOFTWARE\Classes\Rubberduck.Credentials Rubberduck.SourceControl.Interop.Credentials
MY-PC HKLM\SOFTWARE\Classes\Rubberduck.Extension Rubberduck._Extension
MY-PC HKLM\SOFTWARE\Classes\Rubberduck.FakesProvider Rubberduck.UnitTesting.FakesProvider
MY-PC HKLM\SOFTWARE\Classes\Rubberduck.ParserState Rubberduck.API.VBA.ParserState
MY-PC HKLM\SOFTWARE\Classes\Rubberduck.PermissiveAssertClass Rubberduck.UnitTesting.PermissiveAssertClass
MY-PC HKLM\SOFTWARE\Classes\Rubberduck.Repository Rubberduck.SourceControl.Repository
MY-PC HKLM\SOFTWARE\Classes\Rubberduck.SourceControlClassFactory Rubberduck.SourceControl.Interop.SourceControlClassFactory
MY-PC HKLM\SOFTWARE\Classes\Rubberduck.UI.DockableWindowHost Rubberduck.UI._DockableWindowHost
MY-PC HKLM\SOFTWARE\Classes\TypeLib{41382441-E6FC-473B-91EB-CDD2A515AC8D}\1.0 Rubberduck Source Control 1.0
MY-PC HKLM\SOFTWARE\Classes\TypeLib{41382441-E6FC-473B-91EB-CDD2A515AC8D}\1.0\0\win32 C:\Users\Peter\Source\Repos\Test1696\Rubberduck.SourceControl\bin\Debug\Rubberduck.So... MY-PC HKLM\SOFTWARE\Classes\TypeLib{41382441-E6FC-473B-91EB-CDD2A515AC8D}\1.0\HELPDIR C:\Users\Peter\Dropbox\Doing\Github\Rubberduck\Rubberduck.SourceControl\bin\Debug
MY-PC HKLM\SOFTWARE\Classes\TypeLib{41382441-E6FC-473B-91EB-CDD2A515AC8D}\2.0 Rubberduck Source Control 2.0
MY-PC HKLM\SOFTWARE\Classes\TypeLib{41382441-E6FC-473B-91EB-CDD2A515AC8D}\2.0\0\win32 C:\Users\Peter\Source\Repos\Rubberduck\Rubberduck.SourceControl\bin\Debug\Rubberduck.... MY-PC HKLM\SOFTWARE\Classes\TypeLib{41382441-E6FC-473B-91EB-CDD2A515AC8D}\2.0\HELPDIR C:\Users\Peter\Source\Repos\Rubberduck\Rubberduck.SourceControl\bin\Debug
MY-PC HKLM\SOFTWARE\Classes\TypeLib{E07C841C-14B4-4890-83E9-8C80B06DD59D}\2.0 Rubberduck
MY-PC HKLM\SOFTWARE\Classes\TypeLib{E07C841C-14B4-4890-83E9-8C80B06DD59D}\2.0\0\win32 C:\Users\Peter\Source\Repos\RD5fc0039\RetailCoder.VBE\bin\Debug\Rubberduck.tlb MY-PC HKLM\SOFTWARE\Classes\WOW6432Node\CLSID{B2965961-7240-40CD-BE16-9425E2FB003C... Assembly Rubberduck.SourceControl, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null
MY-PC HKLM\SOFTWARE\Classes\WOW6432Node\CLSID{B2965961-7240-40CD-BE16-9425E2FB003C... CodeBase file:///C:/Users/Peter/Source/Repos/Rubberduck/Rubberduck.SourceControl/bin/Debug/Rub... MY-PC HKLM\SOFTWARE\Classes\WOW6432Node\CLSID{B2965961-7240-40CD-BE16-9425E2FB003C... Rubberduck.Repository
MY-PC HKLM\SOFTWARE\Classes\WOW6432Node\TypeLib{41382441-E6FC-473B-91EB-CDD2A515AC... Rubberduck Source Control 1.0
MY-PC HKLM\SOFTWARE\Classes\WOW6432Node\TypeLib{41382441-E6FC-473B-91EB-CDD2A515AC... C:\Users\Peter\Source\Repos\Test1696\Rubberduck.SourceControl\bin\Debug\Rubberduck.So... MY-PC HKLM\SOFTWARE\Classes\WOW6432Node\TypeLib{41382441-E6FC-473B-91EB-CDD2A515AC... C:\Users\Peter\Dropbox\Doing\Github\Rubberduck\Rubberduck.SourceControl\bin\Debug
MY-PC HKLM\SOFTWARE\Classes\WOW6432Node\TypeLib{41382441-E6FC-473B-91EB-CDD2A515AC... Rubberduck Source Control 2.0
MY-PC HKLM\SOFTWARE\Classes\WOW6432Node\TypeLib{41382441-E6FC-473B-91EB-CDD2A515AC... C:\Users\Peter\Source\Repos\Rubberduck\Rubberduck.SourceControl\bin\Debug\Rubberduck.... MY-PC HKLM\SOFTWARE\Classes\WOW6432Node\TypeLib{41382441-E6FC-473B-91EB-CDD2A515AC... C:\Users\Peter\Source\Repos\Rubberduck\Rubberduck.SourceControl\bin\Debug
MY-PC HKLM\SOFTWARE\Classes\WOW6432Node\TypeLib{E07C841C-14B4-4890-83E9-8C80B06DD5... Rubberduck
MY-PC HKLM\SOFTWARE\Classes\WOW6432Node\TypeLib{E07C841C-14B4-4890-83E9-8C80B06DD5... C:\Users\Peter\Source\Repos\RD5fc0039\RetailCoder.VBE\bin\Debug\Rubberduck.tlb
search-registrykey : Exception calling "OpenSubKey" with "2" argument(s): "Requested registry access is not allowed." - HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\SpeechGestures At C:\Users\Peter\Source\Repos\RDUtility\Search-Registry.ps1:184 char:9
search-registrykey $computerName $rootKey $subkeyPath $matchC ...
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- CategoryInfo : NotSpecified: (:) [Write-Error], WriteErrorException
- FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException,search-registrykey MY-PC HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall{979AFF96-DD9E-4FC2-... Inno ... C:\ProgramData\Rubberduck
MY-PC HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall{979AFF96-DD9E-4FC2-... Insta... C:\ProgramData\Rubberduck\
MY-PC HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall{979AFF96-DD9E-4FC2-... Inno ... Rubberduck
MY-PC HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall{979AFF96-DD9E-4FC2-... Displ... Rubberduck version 2.1.2.2693
MY-PC HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall{979AFF96-DD9E-4FC2-... Unins... "C:\ProgramData\Rubberduck\unins000.exe"
MY-PC HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall{979AFF96-DD9E-4FC2-... Quiet... "C:\ProgramData\Rubberduck\unins000.exe" /SILENT
MY-PC HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall{979AFF96-DD9E-4FC2-... Publi... Rubberduck
MY-PC HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall{979AFF96-DD9E-4FC2-... URLIn... http://rubberduckvba.com
MY-PC HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall{979AFF96-DD9E-4FC2-... HelpLink http://rubberduckvba.com
MY-PC HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall{979AFF96-DD9E-4FC2-... URLUp... http://rubberduckvba.com
rubberduckvba.com
© 2014-2021 Rubberduck project contributors
- Contributing
- Build process
- Version bump
- Architecture Overview
- IoC Container
- Parser State
- The Parsing Process
- How to view parse tree
- UI Design Guidelines
- Strategies for managing COM object lifetime and release
- COM Registration
- Internal Codebase Analysis
- Projects & Workflow
- Adding other Host Applications
- Inspections XML-Doc
-
VBE Events