Я не могу построить таргетинг проекта. NET Framework 4.7.2. В частности, это надстройка Excel VSTO с использованием развертывания ClickOnce.
Я использую Visual Studio 2019. Надстройка имеет рабочую базу кода, но ранее она была нацелена на более ранние версии. NET версий ( 4.0, 4.5). Изменения в некоторых зависимостях и веб-службах, с которыми они взаимодействуют, означают, что некоторые используемые библиотеки нуждались в обновлении до более поздних версий, и поэтому некоторая перестановка зависимостей привела меня в этот беспорядок.
Сборка всегда дает сбой с несколькими ошибками вида:
Проблема создания манифеста. Не удалось загрузить файл или сборку 'PATH_TO_NUGET_PACKAGES\microsoft.windows.sdk.contracts\**\*.winmd
' или одну из ее зависимостей. Была предпринята попытка загрузить программу с неверным форматом.
Все они находятся в этом Microsoft.Windows.Sdk.Contracts
пространстве имен, которое получается где-то по пути. Эта надстройка использует WinForms.
Я видел несколько ответов здесь и в других местах на подобные проблемы, но ни одно из решений не помогло при решении моей проблемы.
Например, в «Не удалось загрузить исключение для файла или сборки» , предоставляется несколько параметров. Принятый ответ включает параметр безопасности ClickOnce, но он даже не виден в типе вывода библиотеки классов, которым являются надстройки.
Некоторые другие ответы на этот и другие вопросы касаются конфликтов между 32-разрядными и 64-разрядные развертывания или зависимости. Некоторые ответы предназначены для IIS, другие - нет, но в целом они в основном зависят от того, используете ли вы «Любой ЦП» в качестве цели платформы, или что все нацелено на цель x86. Я использовал «Любой ЦП» с самого начала, но переход на любую цель в настройках сборки и доступных конфигурациях не изменился в результате. Возможно, виновата цель архитектуры из-за различий в зависимостях, но я не знаю, как ее разрешить.
Принятый ответ в 'Не удалось загрузить файл или сборку Windows .winmd ' предлагает исключить файлы .winmd
, изменив их статус Publi sh в области «Publi sh» свойств проекта. Однако, поскольку это надстройка Office, у меня вообще нет такой кнопки.
В другом ответе упоминается ее добавление в GA C с gacutil -i
, но это не сработает. для этих .winmd
файлов.
Это не моя область знаний, я не являюсь первоначальным автором этой надстройки, и я едва знаю, что я делаю, когда дело доходит до. NET , Буду признателен за любую помощь в этом!