: INotifyCompletion
namespace Microsoft.Build.Utilities
sealed class CommandLineBuilder
Файлы:
ConEmuWinForms/Util/INotifyCompletion.cs
ConEmuWinForms/Util/ICriticalNotifyCompletion.cs
ConEmuWinForms/Util/IAsyncStateMachine.cs
ConEmuWinForms/Util/CommandLineBuilder.cs (в msbuild)
ConEmuWinForms/Util/TaskAwaiter.cs
ConEmuWinForms/Util/TaskAwaiter!1.cs
Проблема заключается в том, что пакет Microsoft.Build.Utilities.Core собран для .Net Framweork 4.6
а GitExtensions - для .Net 4.0, поэтому нельзя просто взять и установить этот пакет.
Идея заключается в том, чтобы собрать новый другой пакет специально под .NetFramework 4.0
Если поискать исходные файлы в исходниках msbuild И сравнить с этими - они одинаковые?
Внутри msbuild есть только CommandLineBuilder, но проект содержит reference на Microsoft.Build.Framework.csproj
<ProjectReference Include="..\Framework\Microsoft.Build.Framework.csproj">
<Project>{571F09DB-A81A-4444-945C-6F7B530054CD}</Project>
<Name>Microsoft.Build.Framework</Name>
</ProjectReference>
Там этих TaskAwaiter тоже нет, так что концов не нашлось. Кстати, неясно, нужны ли все классы сделанные Internal или только CommandLineBuilder.
И соберётся ли CommandLineBuilder если будет один в проекте.
глядя на текст класса можно увидеть, что он манипулирует строками и интерфейсами типа ITaskItem (msdn)
Namespace: Microsoft.Build.Framework
Assembly: Microsoft.Build.Framework (in Microsoft.Build.Framework.dll)
ITaskItem.cs - в общем и целом ни от чего такого не зависит.
(но странно, что его нет в коде ConEmu)
Это потому, что код класса CommandLineBuilder из ConEmu не содержит методов, работающих с ITaskItem
(то есть, получается, что класс CommandLineBuilder из ConEmu полностью независим и может быть скомпилирован отдельно)