То, как мы это делаем в моей нынешней компании, - это убедиться, что CommonControlsWebApp
это веб-приложение, а не веб-сайт. Затем вы используете имена папок, которые помогут идентифицировать его как общие, отличные от отдельных веб-приложений. (CommonUserControls вместо просто UserControls)
В других ваших веб-приложениях вы создаете виртуальный каталог для CommonUserControls и т. Д. И добавляете ссылку на файл в CommonControlsWebApp.dll
Для этого требуется, чтобы вы использовали IIS для разработки (не casini), и Visual Studio не поверит, что элементы управления действительно существуют, но он будет работать во время выполнения, и вы можете просто отлично строить только с предупреждениями о blahblah.ascx или Blahblah.master путь неверен.
Если вы используете общие главные страницы и Visual Studio 2008, вам потребуется SP1 для 2008 и использовать __fallback.master в корне отдельных веб-проектов, чтобы перейти в режим разработки.
Тем не менее, я видел это в другой ветке, и я собираюсь разобраться в том, чтобы сделать больше так:
http://webproject.scottgu.com/CSharp/UserControls/UserControls.aspx