Ошибка MSBuild MSB4018 в VS2015: неожиданно не удалось выполнить задачу " ссылка
после обновления решения с 25 проектами от VS2012 Update 4 до VS2015 RTM( 14.0.23107.0) я получаю следующую ошибку при создании одного из проектов:
(...) MSB4018: "неожиданно не удалось выполнить задачу "ссылка". (...) Система.Исключение NullReferenceException: ссылка на объект не указывает на экземпляр объекта.'(...)
здесь полный выход:
1>------ Build started: Project: Buttons, Configuration: Release Win32 ------
1>C:Program Files (x86)MSBuildMicrosoft.Cppv4.0V140Microsoft.CppCommon.targets(643,5): error MSB4018: The "Link" task failed unexpectedly.
1>C:Program Files (x86)MSBuildMicrosoft.Cppv4.0V140Microsoft.CppCommon.targets(643,5): error MSB4018: System.NullReferenceException: Object reference not set to an instance of an object.
1>C:Program Files (x86)MSBuildMicrosoft.Cppv4.0V140Microsoft.CppCommon.targets(643,5): error MSB4018: at Microsoft.Build.CPPTasks.Link.ForcedRebuildRequired()
1>C:Program Files (x86)MSBuildMicrosoft.Cppv4.0V140Microsoft.CppCommon.targets(643,5): error MSB4018: at Microsoft.Build.CPPTasks.TrackedVCToolTask.ComputeOutOfDateSources()
1>C:Program Files (x86)MSBuildMicrosoft.Cppv4.0V140Microsoft.CppCommon.targets(643,5): error MSB4018: at Microsoft.Build.CPPTasks.TrackedVCToolTask.SkipTaskExecution()
1>C:Program Files (x86)MSBuildMicrosoft.Cppv4.0V140Microsoft.CppCommon.targets(643,5): error MSB4018: at Microsoft.Build.Utilities.ToolTask.Execute()
1>C:Program Files (x86)MSBuildMicrosoft.Cppv4.0V140Microsoft.CppCommon.targets(643,5): error MSB4018: at Microsoft.Build.CPPTasks.TrackedVCToolTask.Execute()
1>C:Program Files (x86)MSBuildMicrosoft.Cppv4.0V140Microsoft.CppCommon.targets(643,5): error MSB4018: at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
1>C:Program Files (x86)MSBuildMicrosoft.Cppv4.0V140Microsoft.CppCommon.targets(643,5): error MSB4018: at Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__1.MoveNext()
========== Build: 0 succeeded, 1 failed, 24 up-to-date, 0 skipped ==========
Я уже пробовал несколько предложенных решений, связанных с MSB4018 без каких-либо успехов. Ошибка "задача" ссылка "неожиданно не удалась" еще даже не был проиндексирован Google. Я предполагаю, что эта проблема каким-то образом связана с типом проекта, потому что это единственный проект в решении, который используется как DLL ресурсов (т. е. без точки входа и т. д.). Единственными изменениями, которые были внесены в файл проекта VS2015, являются "ToolsVersion: 4.0 = > 14.0" и "PlatformToolset: v110_xp => v140_xp".
тут у кого есть решение для этого?
3 ответов
мне удалось исправить эту проблему самостоятельно и хотел бы документировать решение здесь для дальнейшего использования.
следующая ошибка была вызвана пустым XML-элементом в файле проекта:
- MSB4018: система.Исключение NullReferenceException: ссылка на объект не указывает на экземпляр объекта.
к пустому элементу была обращена задача "ссылка", которая просто не удалась:
- MSB4018: "ссылка" неожиданно задача не удалась.
удаление соответствующего элемента Исправлена ошибка:
<Link><GenerateDebugInformation></GenerateDebugInformation></Link>
подсказка: как видно из других сообщений, многие ошибки MSB4018, похоже, связаны с файлами проекта, содержащими неожиданные значения.
VS 2015: решение проблемы заключается в следующем: Гото:
Свойства Проекта - >Компоновщик - >Отладка - >Создание Отладочной Информации,
задайте это свойство как оптимизация для отладки (/DEBUG) или нет
Примечание: я заметил аналогичную проблему, когда она была пустой (не установлена).
Это сработало для меня.
Надеюсь, эта информация будет полезной.
Удачи:).
другое решение -удалить все сгенерированные файлы из последней сборки через окно Проводника.
удалить все файлы в:
.\Project\bin
.\Project\obj
хотя вы можете "очистить" или "перестроить" непосредственно через Visual Studio, это захватывает только некоторые файлы. Заставляя перекомпилировать все файлы, все места памяти теперь будут правильно выровнены, и проблема должна быть решенный.