Как программно включить файл в мой проект?C#

Место общения программистов C#
Anonymous
Как программно включить файл в мой проект?

Сообщение Anonymous »

Справочная информация

Я создаю вспомогательное приложение, которое переформатирует некоторые файлы кода и создает новые файлы кода, которые нужно добавить в другой мой проект, чтобы я мог сразу использовать новый код, но у меня возникли серьезные проблемы с автоматическим добавлением этого нового файла кода в мой проект. Кстати, это на C#, а вспомогательное приложение — WinForms.

Неудачные попытки

Единственный ответ на этот вопрос имеет два способа сделать это, но я не смог заставить ни один из них работать. В первом я не могу найти сборку Microsoft.Build для ссылки, а в другом явно не хватает аргументов для командной строки.

Вопрос

Как программно включить файл в проект без использования сторонних приложений?

В принципе ищу аналог этого:

Изображение


...Но сделано с использованием кода.

Требования

По моему мнению, решение должно предлагать следующие функции:
  • Выберите решение в котором есть проект, в который мы добавляем файл.
  • Выберите проект, в который нужно добавить файл.
  • Выберите каталог внутри проекта.
  • И, конечно же, файл, который мы добавляем.
Прогресс

С помощью пользователя @psubsee2003 мне удалось найти файл Microsoft.Build.dll в папке C:\Windows\Microsoft.NET\Framework\v4.0.30319 на моем компьютере и успешно импортировать его, изменив целевую платформу моего проекта на версию 4 Полный профиль, а не профиль клиента по умолчанию.

И я нашел, как использовать метод AddItem:

Код: Выделить всё

var p = new Microsoft.Build.Evaluation.Project(@"C:\projects\MyProject.csproj");
p.AddItem("Compile", @"C:\folder\file.cs");
p.Save();
Файл появится в корневой папке проекта, если только в проекте еще нет папки с именем «папка», в этом случае файл будет помещен туда. Таким образом, в основном файл будет помещен в самую глубокую цепочку папок, найденную в пути исходного файла, ведущем к корневой папке.

Вернуться в «C#»