Если вы откроете файл NSM.csproj
, вы увидите строку, подобную этой:
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
Проблема в том, что свойство $(MSBuildToolsPath)
не установлено, поэтому путь к вашему проекту становится \Microsoft.CSharp.targets
, поэтому вы видите ошибку, которую описали. Это не проблема при сборке проекта из среды IDE Visual Studio или командной строки VS, поскольку для вас автоматически устанавливается подходящая среда, в которой устанавливается это свойство.
Таким образом, вне среды VS вам необходимо убедиться, что MSBuildToolsPath
настроен до вызова msbuild
. msbuild
выберет заданные переменные среды в качестве свойств, поэтому один из способов сделать это - установить переменную среды с этим именем до начала msbuild
, например ::
Environment.SetEnvironmentVariable("MSBuildToolsPath", RuntimeEnvironment.GetRuntimeDirectory());