Если нет желания каждый раз добавлять запись в реестр, а нужно чтобы просто сборку, установленную в GAC видел компилятор, то можно добавить ссылку на собственную сборку и в свойствах ссылки (в окне Properties) поставить Copy Local = False. Тогда сборка не будет копироваться локально, а будет искаться в GAC'е.
Я не понимаю, как осуществить ваш совет. Сборка установлена в GAC, но ее нет в AddReferense\.NET, где, как я понимаю, должны лежать все глобальные сборки — System.Xml и т.п. Так как же я могу добавить на нее ссылку,если ее там нет? У меня вышло, что ваш ответ сработает только тогда, когда я укажу ссылку на проект, где я создал эту сборку.
И еще такой вопрос. Корректно ли будет просто скопировать мою сборку в C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727 ?
В таком случае она появляется в Add Referense. И все вроде работает как надо.
Это я так, на крайний случай... Не, нужно естественно указать dll-ку, ведь она где-то же лежит на твоем компьютере? А потом CopyLocal = False, если ты точно знаешь, что она будет установлена в GAC. Тогда и IntelliSence будет ее видеть при разработке и скомпилированное приложение будет искать эту сборку в общедоступном месте, т.е. GAC'е.
А вообще лучше все-таки будет разобраться как добавить ее так, чтобы видно было в AddReference\.Net. Это знать будет полезно всем. Так что как найдешь самый действенный способ — напиши!
В MSDN нашел статью про добавление сборки в GAC. Там сказано, что gacutil можно использовать только во время разработки. Для развертывания сборки в рабочей среде нужно использовать Windows Installer.
This is the recommended and most common way to add assemblies to the global assembly cache. The installer provides reference counting of assemblies in the global assembly cache, plus other benefits.
Видимо, после этого сборка и появляется в AddReference\.Net. Вообще в этой статье перечисленны 4 способа добавления сборки в GAC.