Я использую ряд пользовательских элементов управления C # (формы, кнопки и т. Д.), Которые используют систему скинов и зависят от внешних изображений (в zip-файле) в папке проекта.Сейчас дизайнер форм не может показать элементы управления, потому что я не могу получить правильный путь к zip-файлу.Мне нужен способ получить путь к сборке или решению во время разработки.
Я использую два проекта:DLL - содержит пользовательские элементы управления.Хост-приложение - ссылается на DLL и использует пользовательские элементы управления.
В моих классах пользовательских элементов управления DLL во время выполнения я просто использую:
string skinPath = "./Skins/" + skin + ".zip";
, который отлично работает, но при разработкеВ это время дизайнер формы отображает ошибку:
Could not find a part of the path 'C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\Skins\Black.zip'.
Посмотрев похожие вопросы на сайте, я тоже попробовал следующее:
1)
if (designMode)
{
EnvDTE.DTE dte = GetService(typeof(EnvDTE.DTE)) as EnvDTE.DTE;
string path = Path.GetDirectoryName(dte.Solution.FullName);
}
Дизайнер форм отображает ошибку:
Object reference not set to an instance of an object.
2)
if (designMode)
{
ITypeResolutionService typeResService = GetService(typeof(ITypeResolutionService)) as ITypeResolutionService;
string path = typeResService.GetPathOfAssembly(Assembly.GetExecutingAssembly().GetName());
}
В конструкторе форм отображается ошибка:
Object reference not set to an instance of an object.
3) Множество разных путей с использованием класса Assembly.
Ничего из того, что еще не работало.Я использую Visual C # 2010 Express.