Почему я получаю 'Assembly' * .dll 'должна быть подписана строго, чтобы быть отмеченной как обязательное условие.'? - PullRequest
260 голосов
/ 27 февраля 2011

Я пытаюсь скомпилировать свой плагин Excel, используя C # 4.0, и начал сталкиваться с этой проблемой при сборке моего проекта в Visual Studio. Важно сказать вам, что у меня не было этой проблемы раньше. Что может вызвать это?

Ответы [ 26 ]

4 голосов
/ 02 апреля 2014

Разгрузка и перезагрузка проблемного проекта решила его для меня.

4 голосов
/ 16 января 2014

В моем решении было слишком много проектов для индивидуального обновления, поэтому я исправил это:

  • Щелкните правой кнопкой мыши мое решение и выберите «Управление пакетами NuGet для решения ...»
  • Переход на вкладку "Обновления"
  • Поиск уязвимого пакета и выбор обновления
  • Нажал кнопку ОК, и все экземпляры пакета были обновлены до
3 голосов
/ 14 мая 2018

Я пошел на опубликовать , файлы приложений, обнаружил, что dll, выдавшая ошибку, изменил ее на 'Включить' с 'Включить (Авто)'.Теперь я могу опубликовать.

3 голосов
/ 09 июля 2015

Теперь Вот другой подход к проблеме:

  • Щелкните правой кнопкой мыши по проекту и выберите опцию «Выгрузить проект».Вы заметите, что ваш проект становится недоступным.

  • Щелкните правой кнопкой мыши по недоступному проекту и выберите параметр «Редактировать».

  • Прокрутите вниз до тега , который содержитвсе теги ресурсов.

  • Теперь перейдите к ссылке, которая была отображена в списке ошибок, вы заметите, что она использует один тег (т. е. < Reference Include="assemble_name_here, Version=0.0.0.0, Culture=neutral" / >).

  • Измените его следующим образом:

.

<Reference Include="assemble_name_here, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL" >
    < Private > True < / Private >
    < HintPath > path_here\assemble_name_here.dll < / HintPath >
< / Reference >
  • Сохраните изменения, щелкните правой кнопкой мыши на недоступномСнова выполните проект и нажмите «Перезагрузить проект», затем выполните сборку.
3 голосов
/ 27 февраля 2011

Правильно ли подписана ваша сборка?

Чтобы проверить это, нажмите Alt + Enter в вашем проекте (или щелкните правой кнопкой мыши, затем Свойства). Перейти к «Подписи». Убедитесь, что установлен флажок «Подписать сборку», выбран файл ключа строгого имени и «Только знак задержки» не проверено .

3 голосов
/ 11 ноября 2016

Это происходит, когда вы изменяете версию .dll, на которую ссылаются.Вам нужно удалить все элементы или DLL в целевой папке сборки.

3 голосов
/ 11 августа 2018

Я столкнулся с этой проблемой после переноса надстройки Excel из packages.config в PackageReference. Кажется, связано с этой проблемой .

Следующее работает как грубый обходной путь, если вы не используете ClickOnce (он пропустит всю информацию о зависимостях из файла .manifest):

  1. Выгрузить проект, отредактировать .csproj
  2. Найдите раздел, похожий на этот:

    <!-- Include additional build rules for an Office application add-in. -->
    <Import Project="$(VSToolsPath)\OfficeTools\Microsoft.VisualStudio.Tools.Office.targets" Condition="'$(VSToolsPath)' != ''" />
    
  3. Редактировать переименованную копию ссылочного файла .targets (в моем случае файл был преобразован в C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\Microsoft\VisualStudio\v15.0\OfficeTools\Microsoft.VisualStudio.Tools.Office.targets, и я сделал копию Microsoft.VisualStudio.Tools.Office_FIX.targets в той же папке - не проверял, работает ли она из другая папка).

  4. Найдите элемент GenerateApplicationManifest и измените его атрибут Dependencies="@(DependenciesForGam)" на Dependencies="".

  5. Измените раздел в 2. для ссылки на отредактированный файл .targets.

Это будет повторяться всякий раз, когда обновляется версия файла .targets, поставляемая с VS (или вы не получите обновления), но я надеюсь, что это будет исправлено в ближайшее время ...

2 голосов
/ 13 июля 2013

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

Вы можете проверить все ссылки на ваш основной проект по представлению в окне обозревателя объектов (меню Вид-> Обозреватель объектов).Ссылка на файл DLL всегда имеет номер версии.Пример: TestLib [1.0.0.0]

Решение: удалить текущую ссылку вашего основного проекта на проект библиотеки и снова добавить ссылку на этот проект библиотеки.

2 голосов
/ 25 октября 2011

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

1 голос
/ 13 сентября 2018

Что мне помогло, так это то, что я перешел на Package Manager Solution и посмотрел на установленный пакет, который вызывал проблему.Я видел, что несколько проектов ссылались на один и тот же пакет, но разные версии.Я выровнял их в соответствии с моими потребностями, и это сработало.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...