2013-10-09 2 views
0

В моем приложении мне нужно ссылаться на DLL, которая будет в GAC на целевой системе, но к которой у меня нет прямого доступа. Затем мне также нужно запустить dotfuscator в моем приложении. ПРИМЕЧАНИЕ. На самом деле у меня есть . имеют доступ к DLL, но это не так, как будет в производстве, поэтому я хотел бы понять, как будто у меня его нет. Любые идеи о том, как это сделать?Как ссылаться на dll в GAC, что у нас нет

+1

DLL, размещенные в GAC, будут автоматически загружены. Или я полностью пропустил тебя? – jgauffin

+0

Вы хотите развиваться против DLL без его фактического нахождения на машине разработки? – David

+0

@David, no: _ "ПРИМЕЧАНИЕ. У меня действительно есть доступ к DLL, но это не так, как это будет в производстве" _. – CodeCaster

ответ

2

Просто добавьте ссылку на DLL и установите Copy Local на номер False. Таким образом, приложение будет опубликовано без DLL и ожидает, что оно будет присутствовать в системе клиентов, что будет: в GAC.

Прочтите How the Runtime Locates Assemblies для получения дополнительной информации.

+0

Когда я это делаю, мой этап обфускации терпит неудачу, так как я предполагаю, что он ищет сборку и не может ее найти. Возможно, я смогу gacutil/install на моей машине разработки, но это не будет летать на машине сборки ... –

+0

Это спасло бы вас и меня, если бы вы сказали это уже в своем вопросе. Я бы ничего не хотел. Вы уверены, что ошибка в процессе обфускации вызвана тем, что обфускатор не смог найти эту сборку? – CodeCaster

+0

Да. Если я установил Copy Local в true, это сработает. Однако, когда я это делаю, а затем удаляю .dll позже, чтобы он не был развернут в целевой системе, мое приложение не запускается. Это похоже на то, что оно будет работать только в том случае, если .dll находится в целевой папке и не смотрит в GAC. Извините, я не знал об этом. –

Смежные вопросы