В моем решении у меня есть ссылки на проект (например) System.ServiceModel.dll, где «использовать конкретную версию» имеет значение false.Все хорошо работает с msbuild 3.5.
Я бы хотел использовать msbuild 4.0 для использования функций свойств .Я попытался передать в свойствах "TargetFrameworkVersion = 3.5; ToolsVersion = 3.5".Однако я получаю следующую ошибку:
Не удалось загрузить файл или сборку 'C: \ WINDOWS \ Microsoft.Net \ Assembly \ GAC_MSIL \ System.configuration \ v4.0_4.0.0.0__b03f5f7f11d50a3a \ System.configuration.dll 'или одна из его зависимостей.
Этого не произойдет, если я использую msbuild 3.5.
Можно ли сделать эту работу без указания версий в файлах проекта?(В будущем мы можем захотеть обновить приложение до dotnet 4)
Редактировать: я пытался использовать msbuild 3.5 во «внешнем» вызове и вызывать msbuild (используя задачу <msbuild>
) 4.0 для тех целей, для которых требуетсяновый функционал.С этим тоже не повезло - внутренний вызов выдает следующее сообщение об ошибке:
ошибка MSB4062: не удалось загрузить файл или сборку 'Microsoft.Build.Tasks.v4.0, версия = 4.0.0.0 илиодна из его зависимостей.Система не может найти указанный файл.Убедитесь, что объявление правильное и что сборка и все ее зависимости доступны.