Приложение WPF регистрирует сборки в GAC?

Основываясь на руководстве по производительности от Microsoft, кажется, что добавление сборки в GAC может помочь улучшить производительность времени запуска приложения. Если я зарегистрирую сборки своего приложения в GAC, должны ли мои проекты ссылаться на сборки GAC или ссылки на проекты?

ApplicationFoo.csproj

использованная литература:

Library1.csproj

но я подписываю и регистрирую Library1.dll в GAC.

Должен ли ApplicationFoo.csproj иметь ссылку на Library1.dll в GAC или Library1.csproj?


person markti    schedule 07.05.2014    source источник
comment
Мое приложение по-прежнему использует пакеты слепков (EntLib, PRISM), но это ссылки на папки bin. После того, как я GAC разместил сборки EntLib5 и PRISM, они не отображаются в диалоговом окне добавления ссылок. Так что я даже не знаю, как ссылаться на сборки в GAC. Я загрузил GACBrowse и вижу, что нужные сборки ЕСТЬ в GAC. Не уверен, почему они не отображаются в окне «Добавить ссылки».   -  person markti    schedule 08.05.2014
comment
Я думаю, вы ответили на свой вопрос, да, обратитесь к ним в GAC и сначала убедитесь, что вы их развернули. Боковое примечание, вы также можете NGEN их по соображениям производительности.   -  person aybe    schedule 08.05.2014


Ответы (1)


Ваш проект обычно должен ссылаться на сборки не в GAC, а где-то в исходной папке, которую вы помещаете в свою систему управления версиями. Вы не можете сделать это со сборками в GAC.

Когда вы запускаете свое приложение, загрузчик .Net (fusion) сначала просматривает GAC и использует эти сборки, если сможет их найти. В противном случае он будет искать сборки рядом с вашим exe.

Поэтому, хотя вы могли бы, поработав, ссылаться на сборки в GAC из своего проекта, вам не следует этого делать. При запуске вы можете поместить сборки в GAC, и вам не нужно ничего менять для этого, но вы можете захотеть сделать это только в производственной среде. Легче контролировать вашу среду разработки, если они не находятся в GAC.

person Lars Truijens    schedule 08.05.2014