Экспортированный шаблон проекта из VS2008, но он поврежден? - PullRequest
3 голосов
/ 06 ноября 2008

Я работаю над созданием пользовательского шаблона проекта в выпуске Visual Studio 2008 Team System. Я также создал собственный мастер для пользовательского шаблона.

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

7zip считает, что папки в архиве используют нестандартное сжатие zip. Последний winzip считает, что заголовок CRC на папках не соответствует основному заголовку CRC.

Что я делаю не так?

Если я не изменяю zip-файл шаблона, созданный VS2008, он работает просто отлично. Но мне нужно иметь возможность обновить ZIP-файл. Если я это сделаю, 7zip / winzip исправит структуру файла zip, а затем VS2008 больше не будет любить шаблон. Файлы в папках внутри zip-файла недоступны.

Я заметил, что стандартные шаблоны, похоже, сохраняют плоскую структуру файлов. Это не вложенные папки или что-то еще. Но файл vstemplate имеет атрибуты targetfilename, которые воссоздают исходную структуру папок.

Например, вместо ...

<Folder Name="My Project" TargetFolderName="My Project">
    <ProjectItem ReplaceParameters="true" TargetFileName="AssemblyInfo.vb">AssemblyInfo.vb</ProjectItem>
</Folder>

стандартный vstemplate определяет следующее ...

<ProjectItem ReplaceParameters="true" TargetFileName="My Project\AssemblyInfo.vb">AssemblyInfo.vb</ProjectItem>

Я только что немного подумал над вышесказанным. Они на самом деле одно и то же?

Проблема с созданием оригинального zip-файла?

Структура папок внутри zip-файла отключает все?

Должен ли он добавить все файлы в zip-архив в виде плоской структуры папок? Если да, есть ли исправление для VS2008, чтобы мне не пришлось вручную исправлять архивы шаблонов?

Ответы [ 3 ]

4 голосов
/ 26 июля 2010

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

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

Это то, что мешает Visual Studio распознавать архив как шаблон. Это должно работать с 7-Zip, WinRAR или чем-то еще, что вы предпочитаете раздувающему программному обеспечению WinZip.

0 голосов
/ 05 марта 2009

Похоже, Visual Studio создает нестандартные ZIP-файлы. Мое решение состояло в том, чтобы распаковать zip-файл шаблона, сгенерированный VS, а затем повторно заархивировать файлы с помощью WinZip.

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

0 голосов
/ 02 марта 2009

Та же проблема здесь. Я решил это, используя <ProjectItem>MyFolder\MyFile.cs</ProjectItem> вместо <Folder>...<Folder>.

PS: TargetFileName не работает для меня в VS2008 + Windows7.

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