Nano Hash - криптовалюты, майнинг, программирование

Почему при попытке добавить ссылку появляется сообщение «Невозможно создать сборку: сборка, на которую ссылаются, не имеет строгого имени»?

Я хочу включить значок на панели задач в свой проект WPF и нашел этот ресурс:

http://www.hardcodet.net/projects/wpf-notifyicon

похоже, что он будет прекрасно работать, но он написан для C#, и я использую VB.net для этого проекта. Я скачал его проект и создал значок уведомления в виде DLL, а затем добавил его в качестве ссылки на свой проект.

Выдает ошибку:

Невозможно создать сборку: указанная сборка Hardcodet.Wpf.TaskbarNotification не имеет строгого имени.

Поэтому я пытаюсь выяснить, как лучше поступить. Нужно ли мне сильно называть это, или есть лучший способ сделать это?


Ответы:


1

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

Поскольку вы уже создаете его, вы можете просто добавить строгое имя в свойствах проекта и перестроить. Как только вы это сделаете, он должен работать (вообще не меняя код).

01.06.2011
  • он имеет в виду, что вы должны подписать его. 18.01.2013

  • 2

    Это ограничение безопасности. Проще говоря, если вы присвоите своей сборке строгое имя, вы гарантируете ее потребителям, что во время выполнения будет загружена только ваша сборка и ее зависимости. Злоумышленники не смогут подменить вашу сборку самозванцем (если, конечно, у них нет вашего ключа).

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

    Ваши варианты:

    1. Удалите строгое имя из сборки.
    2. Присвойте стороннему коду строгое имя во время компиляции. В вашем случае это легко, потому что вы строите из исходного кода.
    3. Дайте строгое имя сторонним двоичным файлам, используя ILMerge. Это привлекательный вариант, если вы не собираете исходный код, а третья сторона забыла подписать свою сборку.
    01.06.2011

    3

    Проще говоря, это означает, что у вас есть проект с именем AssemblyA, который ссылается на AssemblyB. AssemblyA подписана, AssemblyB нет.

    Вам придется решить, подписывать также AssemblyB или не подписывать AssemblyA.

    11.10.2018
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..