Как сослаться на сборку со строгим именем из App.config?

У нас есть много сборок, которые раньше были частными сборками, на которые ссылается папка \bin. Я добавил configSection в файл App.config, который относится к сборке из папки \bin.

<configSections>
    <section name="Logger" type="Logger.Client.Reader,Logger.Client,Version=2.0.0.0,Culture=neutral,PublicKeyToken=null"/>
</configSections>

Теперь мы решили дать сборкам строгие имена. Мы так и сделали. Теперь, когда я ссылаюсь на сборку, указанную выше configSection, нужно ли мне иметь все детали, такие как version и PublicKeyToken? В настоящее время я не добавлял сборки в GAC, и они все еще находятся в папке \ bin.

Когда необходимо предоставить все подробности, как показано выше? И когда (и какие) его можно исключить?


person Learner    schedule 18.05.2011    source источник
comment
ASP.NET, верно? Тогда зачем использовать App.config, когда следует использовать Web.config?   -  person abatishchev    schedule 18.05.2011
comment
У меня есть приложение winform. Итак, это app.config. И у меня такая же конфигурация в web.config для веб-сервисов.   -  person Learner    schedule 18.05.2011
comment
@abatishchev: есть ли у вас упоминание в проекте или нет, не имеет отношения к этому вопросу. Вам необходимо указать имя сборки, чтобы подсистема system.configuration могла его загрузить / найти.   -  person Christian.K    schedule 18.05.2011
comment
конечно, извините, неправильно прочитал. объявление раздела конфигурации, я вижу   -  person abatishchev    schedule 18.05.2011
comment
Самый простой способ: попробуйте оба способа - возьмите сборку со строгим именем и укажите ее с FQN и без него, и вы увидите. По моему опыту, это будет работать, потому что вы можете использовать сборки FCL без FQN, например просто System.Configuration.ConfigurationSection, System.Configuration   -  person abatishchev    schedule 18.05.2011
comment
См. Принятый ответ на этот вопрос: stackoverflow.com/questions/4807420/. Да, для краткого ответа вам нужно упомянуть культуру и токен открытого ключа для ссылки на сборку со строгим именем.   -  person Rajeev Nair    schedule 07.12.2017


Ответы (1)


См. Статьи MSDN: this и this.

Сборка со строгим именем имеет полное имя, которое включает имя сборки, язык и региональные параметры, открытый ключ и номер версии. Это часто называют отображаемым именем, а для загруженных сборок можно получить с помощью свойства FullName.

См. Assembly.FullName.

person abatishchev    schedule 18.05.2011
comment
+1 Это сняло большую часть очков. В сообщении, о котором вы упомянули, говорится, что All assembly references to assemblies that make up the .NET Framework also must contain a fully qualified name of the assembly. И я понимаю, что это должно быть верно и для моих собственных строго именованных сборок. Но знаете ли вы, должны ли сборки, не относящиеся к .NET, иметь полные имена при обращении к ним из файлов конфигурации, как я показал? - person Learner; 18.05.2011