2013-04-16 5 views
2

Я пытаюсь скомпилировать некоторые C++/CLI с помощью MSBuild. Я получаю сообщение об ошибке:Отсутствует задача MSBuild при компиляции C++/CLI

C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppClean. targets(74,5): error MSB4062: The "CppClean" task could not be loaded from the assembly Microsoft.Build.CppTasks.Common, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a. Could not load file or assembly 'Microsoft.Build.CppTasks.Common, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified. Confirm that the declaration is correct, that the assembly and all its dependencies are available, and that the task contains a public class that implements Microsoft.Build.Framework.ITask.

Мой коллега зафиксировал эту ошибку, устанавливая Visual Studio 2010 SP1 на своей машине, но у меня уже есть, что установлен (а также Visual Studio 2012 с Update 1) пока я получив эту ошибку. Я проверил путь из сообщения об ошибке, и существуют файлы и Microsoft.Build.CPPTasks.Common.dll.

Задача CPPClean, как представляется, является частью MSBuild tasks specific to Visual C++. Есть ли способ получить это как отдельный установщик, чтобы я мог его восстановить или как часть установки для другого набора инструментов? Если это не так, есть ли другой способ устранить эту ошибку?

+0

Имеет ли 'Microsoft.Build.CPPTasks.Common.dll' класс' CppClean'? Вы можете проверить это с помощью dotpeek/reflector. То есть Идея состоит в том, чтобы понять, что это проблема с сборкой или с DLL? – Lanorkin

+0

@ Lanorkin: Да, задача 'CppClean' находится в сборке. – adrianbanks

+2

У вас есть это в GAC? Похоже, он запрашивается именем сборки, а не именем файла: 'UseTask TaskName =" CppClean "AssemblyName =" Microsoft.Build.CppTasks.Common, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a "Вы можете использовать 'gacutil/l' для проверки – Lanorkin

ответ

2

Подсказка по комментарию Лакоркина, я проверил GAC и Microsoft.Build.CppTasks.Common.dll сборки там не было. Я добавил его вручную, и теперь он строит.

Смежные вопросы