Просто введите Regedit.exe и создайте ключ, например:
HKLM\SOFTWARE\Microsoft\.NETFramework\v2.0.50727\AssemblyFoldersEx\StackOverflow
Неважно, как называется ключ, все имена папок, перечисленные в AssemblyFoldersEx, ищутся во время разработки сборок Visual Studio.
Папка должна быть добавлена в Regedit с использованием записи (по умолчанию), в которой в качестве значения указан путь к папке. (См., Например, ключи братьев и сестер).
Интересно, что все папки, присутствующие в разделе реестра AssemblyFoldersEx, будут автоматически появляться и при нажатии «Добавить новую ссылку» в контекстном меню проекта на вкладке .NET.
Другой подход - добавить нужную сборку в глобальный кэш доступа (c: \ Windows \ Assembly)
Я только что сделал следующий тест: На сборке ресурса я поместил следующий код:
public class MyEditor : UITypeEditor
{
public override UITypeEditorEditStyle GetEditStyle(System.ComponentModel.ITypeDescriptorContext context)
{
return UITypeEditorEditStyle.Modal;
}
public override object EditValue(System.ComponentModel.ITypeDescriptorContext context, IServiceProvider provider, object value)
{
MessageBox.Show("Works");
return null;
}
}
В потребительской сборке (исполняемая сборка Windows формы) я создал компонент, производный от Button, вот так:
public class MyButton : Button
{
[Editor("AssemblyReferenceCL.MyEditor, AssemblyReferenceCL", typeof(UITypeEditor))]
public String MyProp { get; set; }
}
Нет ссылки между двумя сборками. Все работало просто отлично.