Make sure your .ocx is added to the installation project to be installaed to some location. In the Visual Studio Installer, in the "Project Exporer" you should have an item called "Associations". Double click on this to open the view. I'm assuming the .ocx is an ActiveX control which would mean you want to add a COM Object. Use the ActiveX controls CLSID for the identifier. Make sure it is selected and go over the "Properties" window. Select "Component", click the "..." button and hit the "the following component" radio button, and double click on your .ocx file in the list. The other options in the Properties window will default to the settings needed for InProc Servers (if I remember correctly) so if your component is typical, you will likely use the defaults but be aware of these settings if you find it's still not registering correctly. One word of caution, the MSI will register and deregister the file the CLSID path refers to for you. During development, when you manually register new versions, always keep in mind to check OLEView to ensure the last registered ProgID is pointing to the CLSID component that you would expect. This is more troublesome in a VB environment since you have to explicitly set "binary compatibility" to reuse the same CLSID. Just be aware to always check OLEView if something is not right on your development box. I find I still need to use "regsvr32.exe" on a regular basis without regards to my deployment .msi during development. Hope that helps