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

#.net #assemblies #reference #strongname

#.net #сборки #ссылка #strongname

Вопрос:

У нас есть много сборок, которые раньше были частными сборками, на которые ссылались из 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 ? В настоящее время я не добавил assmblies в GAC, и они все еще находятся в папке bin.

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

Комментарии:

1. ASP.NET верно? Тогда зачем App.config, когда вы должны использовать Web.config?

2. У меня есть приложение winform. Итак, это app.config. И у меня такая же конфигурация в web.config и для веб-служб.

3. @abatishchev: есть ли у вас ссылка в проекте или нет, не имеет отношения к этому вопросу. Вам нужно указать assemblyname, чтобы подсистема system.configuration могла загрузить / найти ее.

4. конечно, извините, неправильно прочитал. объявление раздела конфигурации, я вижу

5. самый простой способ, который вы можете сделать: попробуйте оба способа — возьмите сборку со строгим именем и укажите ее с помощью и без FQN, и вы увидите. По моему опыту, это сработает, потому что вы можете использовать сборки FCL без FQN, например, просто «System. Конфигурация. Раздел конфигурации, System. Конфигурация»

Ответ №1:

Смотрите статьи MSDN: это и это.

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

Смотрите Assembly.FullName .

Комментарии:

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