Добавить существующий файл в проект Visual Studio с помощью DTE

Я программно создал несколько файлов. Я хочу добавить их в проект визуальной студии. У меня есть ссылка на проект (DTE.Project). Когда я выполняю приведенный ниже код, я получаю сообщение об ошибке.

project.ProjectItems.AddFromFile(filename);

Ошибка

Exception at 'Expand' - 'Unable to add 'manage.txt'. A file with that name already exists.'
System.Runtime.InteropServices.COMException (0x80040400): Unable to add 'manage.txt'. A file with that name already exists.
at EnvDTE.ProjectItems.AddFromFile(String FileName)

Когда я оборачиваю вызов в try-catch, процесс завершается, но ни один из файлов не добавляется в проект. Мне приходится вручную показывать скрытые файлы, а затем включать их в проект.

Как мне добавить файл, чтобы это работало?


person ritcoder    schedule 15.01.2012    source источник
comment
Я только что прочитал из документации msdn, что ProjectItems.AddFromFile завершится ошибкой, если файл уже существует в проекте. Какая еще функция доступна для включения файла в проект?   -  person ritcoder    schedule 16.01.2012
comment
Это странный вопрос... Если файл уже существует в проекте, то вам не нужно добавлять файл в проект. Все, что вам нужно сделать, это перебрать ProjectItems в расположении вы хотите добавить файл и, если он уже существует, пропустите его добавление.   -  person    schedule 16.01.2012
comment
Я думаю, что эта ветка дает решение вашего вопроса - [макрос Visual Studio: найти файлы, которые не включены в проект?] [1] [1]: stackoverflow.com/questions/2000197/   -  person Dmitry Pavlov    schedule 21.02.2012
comment
@Will: Это кажется странным, но я использую скрипт, который создает список файлов и добавляет их в проект. Поскольку я относительно новичок в DTE и прочем, я подумал, что мне не хватает метода.   -  person ritcoder    schedule 23.02.2012
comment
@DmitryPavlov: Похоже, что нет метода для вызова, но действительно страница содержит решение для меня. Можете ли вы добавить это как ответ, чтобы я принял его. благодаря.   -  person ritcoder    schedule 23.02.2012


Ответы (1)


@ritcoder - конечно:

Я думаю, что эта ветка дает решение вашего вопроса - Макрос Visual Studio: найти файлы, не включенные в проект?

person Dmitry Pavlov    schedule 24.02.2012