You need to postbuild the markup (ASCX files only) from the C# project into your VB Web Application project, and reference those ASCX's instead of the C# ones. Sounds bizarre but believe me it works.
1 - Add a post-build event to the C# project that copies the UserControl markup (just the .ASCX files) to a folder in your Web Application project; for example, a folder under the root of your web app called "ExternalUserControls"
(Note that they should have the same Inherits property, i.e. the namespace and classname from the C# project.)
2 - Make sure the C# project is referenced (sounds like it already is)
3 - Add control declarations to the <controls>
section of <pages>
of <system.web>
in web.config: -
<system.web>
.
.
<pages>
<controls>
<add tagPrefix="cc"
src="~/ExternalUserControls/MyControl.ascx"
tagName="MyControl" />
<add .... etc
4 - reference the controls in your page thusly: -
<cc:MyControl id="testControl" runat="server" ..
5 - make sure you Import
the correct namespace for the control as defined in the C# project
6 - Note that sometimes the VS Page Designer will refuse to add a variable for your control, so in order to access your control in the code-behind you will need to add a page-level protected
(or whatever VB's equivalent is, I can't remember) variable of the correct type, using the same name as in the page markup (testControl in the example above)
Let me know if you want an example.