Может ли «связанный» файл быть переименован программно с помощью расширения

#visual-studio-extensions

Вопрос:

Я написал расширение, которое, помимо всего прочего, переименовывает файлы в зависимости от типов, которые они содержат.

Это отлично работает для файлов в дереве каталогов под csproj-файлом-я нахожу запись ProjectItem для файла и меняю его имя.

Для «связанных» файлов (тех, которые не находятся в дереве каталогов) Я могу переименовать файл (через файл.Переместить ()), но не нашли способа программно изменить csproj-файл (после переименования csproj-файл должен быть изменен вручную).

Если это то, что можно сделать, я был бы признателен за указатель на документы, показывающие, как реализовать эту функциональность.

Комментарии:

1. Делает ли Microsoft.Build. Справка по пространству имен BuildEngine?

2. Спасибо за совет. Классы в этом пространстве имен устарели — заменены на Microsoft.Build. Строительство — которое я проверю.

Ответ №1:

Самым простым решением для меня было изменить csproj-файл.

  1. Откройте, прочитайте весь файл, закройте.
  2. Убедитесь, что файл, который я хочу переименовать (например, xxx.cs), находится только в 1 каталоге (если он находится в нескольких каталогах, изменение должно быть выполнено вручную).
  3. Внесите изменения
  4. Открыть, записать весь файл, закрыть
  • Для проекта SDK изменение применяется немедленно.
  • Для проекта, не связанного с SDK, изменение применяется после ответа на запрос о том, что файл csproj был изменен.

Комментарии:

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