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

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

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

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

2 ответа

Решение

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

  1. Выберите узел "Ссылка на проект" на "MyExtension.UI" в обозревателе решений и просмотрите свойства (F4)
  2. Измените значение для "Группы вывода, включенные в VSIX" на следующее: BuiltProjectOutputGroup;BuiltProjectOutputGroupDependencies;GetCopyToOutputDirectoryItems;SatelliteDllsProjectOutputGroup

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

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

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

Другие вопросы по тегам