Пакет VSIX не включает локализованные ресурсы сборки, на которую указывает ссылка.

Я создаю расширение VS2010 (назовем его MyExtension). Пользовательский интерфейс для этого расширения находится в другой сборке (MyExtension.UI), проект расширения содержит только шаблонный код для вызова пользовательского интерфейса из команды меню.

MyExtension.UI содержит локализованные ресурсы (например, fr\MyExtensions.UI.resources.dll), но пакет VSIX не включает эти ресурсы (хотя они присутствуют в каталоге bin\Debug).

Как указать VS включить эти ресурсы в пакет VSIX? Я посмотрел в дизайнере .vsixmanifest, но не могу найти подходящую опцию...


person Thomas Levesque    schedule 07.08.2011    source источник


Ответы (2)


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

  1. Выберите узел Project Reference для MyExtension.UI в обозревателе решений и просмотрите свойства (F4).
  2. Измените значение «Группы вывода, включенные в VSIX» на следующее: BuiltProjectOutputGroup;BuiltProjectOutputGroupDependencies;GetCopyToOutputDirectoryItems;SatelliteDllsProjectOutputGroup
person Aaron Marten    schedule 08.08.2011
comment
@Aaron Marten, это все еще ошибка в сравнении с 2012 годом, если вы попытаетесь добавить ссылочную сборку с ресурсами в свое решение VSIX. Ошибка: Microsoft.VsSDK.targets(118,5): ошибка: не удалось определить полное имя сборки в 'resource.txt' - person codingadventures; 03.04.2013
comment
Здесь стоит упомянуть одну вещь: кажется, что нужно делать полную очистку и перестраивать каждый раз, когда вы хотите выполнить переустановку для отладки, иначе это немного помешает ... - person Sarel Esterhuizen; 24.09.2017
comment
Это работает только для ссылок project? Это работает только в VS2010? Мое расширение использует только ссылки DLL и NuGet, и я не вижу выходные группы, включенные в VSIX, в окне свойств (VS2019, .NET 4.7.2 VSIX). Кроме того, некоторые зависимости ключевого пакета (Microsoft.CodeAnalysis.CSharp.Scripting) включены в VSIX, в то время как другие загадочным образом исключены... и ни одна из сборок ресурсов не включена. - person Qwertie; 06.07.2020

@JohnField - я столкнулся с той же ошибкой - «Не удалось определить полное имя сборки в '...'» - и хотел указать здесь исправление на случай, если кто-то еще столкнется с той же проблемой.

Моя проблема заключалась в том, что у меня была ссылка ProjectReference на ссылочную сборку, И я указал сборку как актив в моем файле .vsixmanifest. Когда вы добавляете элемент «Копировать в выходной каталог» в сборку, на которую указывает ссылка, VS SDK сбивается с толку, поскольку считает, что добавленный вами ресурс сборки предназначен только для сборки. Он видит лишний элемент CopyToOutputDirectory, думает, что это сборка, и пытается ее загрузить.

Исправление заключалось в том, чтобы удалить сборку как актив в .vsixmanifest. В этом нет необходимости, поскольку на проект уже есть ссылка, которая включает сборку в результирующий файл .vsix. На самом деле неудачное название AssetType «Microsoft.VisualStudio.Assembly» на самом деле предназначено для мастеров шаблонов.

person Eric Erhardt    schedule 28.02.2015