Это должно добавить документ.Roslyn AddDocument к проекту и сохранить это изменение в реальном файле решения
public static void AddDoc()
{
var msBuild = MSBuildWorkspace.Create();
var sln = msBuild.OpenSolutionAsync
(@"D:\PanNiebieski\Documents\Visual Studio 14\Projects\WebApplication1"
+ @"\WebApplication1.sln").Result;
foreach (var p in sln.Projects)
{
p.AddDocument(Guid.NewGuid().ToString() + ".txt", "test");
var ok = msBuild.TryApplyChanges(sln);
Console.WriteLine(p.Name + ":" + ok);
}
Console.ReadKey();
}
Метод «TryApplyChanges» возвращает true, чтобы документ был добавлен. Затем, когда я проверяю решение, ничего подобного не существует. У меня такая же проблема с добавлением ссылок на проект.
Вопрос в том, как я могу сохранить изменения, как добавление документа в настоящий проект. Я что-то упускаю. Многие вопросы в StackOverflow о добавлении ссылок на проект говорят, что это просто не работает. Не работает ли метод «AddDocument»?
Этот метод говорит, что это действие поддерживается. Я запутался.
Что произойдет, если вы добавите файл .cs? Глядя на http://source.roslyn.codeplex.com/#Microsoft.CodeAnalysis.Workspaces.Desktop/Workspace/MSBuild/MSBuildWorkspace.cs,1285b31dd95f5004, я вижу там некоторые материалы расширения. (Также этот код изменился с момента предварительного просмотра VS2015) –
Не работает после обновления пакетов с бета1 до бета2. Расширение файла «cs» ничего не делало. – user2932893