(Lviv community of .NET developers)

ClickOnce, локализация и GAC

November 23, 2007 13:01 by rat

Недавно столкнулся с такой вот проблемой: есть контролы в отдельной ассембле, есть сателитные ассембли с локализированными версиями ресурсов для контролов, и то и другое лежит в GAC.
Есть проэкт в котором используется контрол из вышеупомянутой ассембли, и потому есть референс на ассемблю с контролом (естественно на GAC, соответственно в референсе есть только название ассембли - никаких путей).
Нужно задеплоить программу через ClickOnce.

И вот сама проблема: при деплойменте сателитные ассембли студия не находит, и потому не деплоит. Если добавить локализированные ресурсы в референсы, то ассемблю деплоймент положит не в папку с нужным языком, а просто рядом с программой, что собственно проблему не решит.


Но решение было найдено :)

Оказывается студия начинает понимать факт того что у ассембли могут быть сателитные ассембли только в том случае если она как-то найдёт данную ассемблю на диске. Можно конечно сделать референс тупо на файл , но это в данном случае не подходит - нужен именно GAC.

И вот для того, чтобы студия могла найти ассемблю на диске и заодно найти её сателитную ассемблю в папке рядом, нужно эту ассемблю и её сателиты, кроме того что в гак запихнуть,  положить в какую-то не путающуюся под ногами/руками папка и сказать студии искать там ассембли перед тем как искать их в GAC. Для этого нужно в реестре создать ключ с произвольным названием в ключе HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\AssemblyFolders, и в его дефолтовом значении проставить путь на папку с ассемблями.
Кстати такие дефствия приводят к тому что ассембля появляется в списке сборок в Add Reference диалоге в студии.

После таких действий студия начинает понимать что сателитные ассембли таки существуют и разрешит их задеплоить через ClickOnce.

Надеюсь это кому-то поможет :)


Currently rated 4.0 by 3 people

  • Currently 4/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Comments

June 25. 2010 04:25

I wish to know more about this because it actually catches my attention. Keep on posting valuable information about this dude! Thank you so much for sharing.

New Creative Writing Jobs

July 7. 2010 15:40

Need to disagree with the comment above, get your facts straight before writting such a comment.

Peex

July 8. 2010 02:43

I totally agree.

Pee-k

July 15. 2010 04:26

I wish to know more about this because it actually catches my attention. Keep on posting valuable information about this dude! Thank you so much for sharing.

vibram fivefingers

Add comment


(Will show your Gravatar icon)