как динамически создать файл решения .sln,.csproj,assemblyinfo.cs

Я создаю инструмент для генерации кода в виде приложения Windows Forms в Visual Studio 2010 в рамках 4.0.

Я хочу создать файл .csproj, файл Assemblyinfo.cs и .sln динамически, включая некоторые файлы классов, которые я создал, чтобы, когда я нажимаю на этот файл .sln, он открывался как проект со всеми файлами классов, которые я создал.

Это означает, что когда я нажимаю кнопку generatesolution, должен автоматически создаваться новый проект со всеми папками, которые создаются, когда мы создаем новый проект из Visual Studio.

Пожалуйста помогите.


c#
person user1160453    schedule 20.01.2012    source источник
comment
Пожалуйста, постарайтесь помочь мне как можно скорее   -  person user1160453    schedule 20.01.2012


Ответы (4)


Вам лучше использовать возможности автоматизации Visual Studio, а не пытаться создавать файлы самостоятельно — в MSDN есть статья "Управление решением и его проектами", в котором дается обзор процесса создания решения, хотя и не хватает подробностей: в нем также есть пример кода. документацию по интерфейсу Solution2, в которой показано, как создать консоль приложение и статью о Как программно создавать проекты.

Надеюсь, этого достаточно, чтобы вы начали.

person stuartd    schedule 20.01.2012

Чтобы создать проект программно, вы можете использовать Microsoft.Build.Evaluation.Project (документация MSDN), а для решения просто используйте EnvDTE (документация MSDN)

person user1141178    schedule 20.01.2012

Что такое решение? Я думаю, файл, который содержит ссылки и свойства.

Так что же такое файл проекта? В нем есть некоторая информация о формах и классах.

По сути, мы можем записать в файл .sln что-то вроде этого:

Solution Name : Sol1
Projects      : 1
References    : System,System.Text,System.Linq

и для файла проекта:

Forms Count     : 4
Classes         : 8
Folders         : 2
Resources       : 0
Silver light    : N
Web             : N
Type            : Windows Application
Directory       : C:\Dir
Framework       : 4
Parent Solution: Sln1

Или вы можете создать структуры данных (класс) для решения и проекта.

Но лучше связаться с MSDN и получить собственную структуру данных и заголовки для файла .sln.

person S.A.Parkhid    schedule 20.01.2012

Возможно, вы могли бы создать простое ванильное решение/проект с помощью Visual Studio с минимальным необходимым минимумом, а затем использовать созданные файлы в качестве шаблона для процедуры генерации кода.

Однако вам нужно будет изменить файлы проекта, чтобы они ссылались на ваши сгенерированные файлы. Файл .csproj — это просто XML, поэтому изменить его будет гораздо проще — посмотрите, как он добавляет исходные файлы в качестве ориентира. Файл .sln было бы немного сложнее редактировать, поскольку это настраиваемый формат, но я думаю, что какая-то замена строки/RegEx может сработать.

person Peter Monks    schedule 20.01.2012