string solutionPath = @"C:\...\...\ConsoleApp8.sln";
MSBuildWorkspace msWorkspace = MSBuildWorkspace.Create();
var solution = msWorkspace.OpenSolutionAsync(solutionPath).Result;
foreach (Project project in solution.Projects)
{
Console.WriteLine(project.Name);
foreach (var document in project.Documents)
{
Console.WriteLine(project.Documents);
}
}
при запуске проекта document всегда пустой
Похожая проблема описана здесь: https://github.com/dotnet/roslyn/issues/25370
Если добавить в код вывод диагностических сообщений MSBuild:
var diagnostics = msWorkspace.Diagnostics;
foreach (var diagnostic in diagnostics)
{
Console.WriteLine(diagnostic.Message);
}
Он покажет примерно следующее:
Сбой Msbuild при обработке файла "..." с сообщением: MSB0001: Internal MSBuild Error: Type information for Microsoft.Build.Utilities.ToolLocationHelper was present in the whitelist cache as Microsoft.Build.Utilities.ToolLocationHelper, Microsoft.Build.Utilities.Core, Version=15.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a but the type could not be loaded. unexpectedly null
Установка NuGet-пакета Microsoft.Build.Tasks.Core должна решить проблему. Ошибки MSBuild при этом полностью не исчезают, однако, список документов начинает выводится:
foreach (Project project in solution.Projects)
{
Console.WriteLine(project.Name);
foreach (var document in project.Documents)
{
Console.WriteLine("- " + document.Name);
}
}
/* Результат:
ConsoleApp1
- Program.cs
- AssemblyInfo.cs
- .NETFramework,Version=v4.6.AssemblyAttributes.cs
*/
На компьютере у одного пользователя не установлен SqlClientСоответственно у меня используются экземпляры класса System
В общем, сделал класс, который содержит несколько простых строковых полей
Подскажите как отрыть книгу excel защищенную паролем? В интернете не смог найти информацию в основном предлагается задать пароль книгиПытаюсь...
Копался в коде laravel, просто глянуть что как, поучиться чему нибудь, и ума не приложу как такВот код: