2014-01-23 9 views
3

Я нахожусь в VS2012 Обновление 3 с помощью TFS2012.Строительная площадка через devenv.exe работает, msbuild не работает

Я построю одно и то же решение, используя devenv и msbuild. Когда я перехожу к проектам веб-сайта, devenv не сообщает о каких-либо ошибках, но msbuild делает это повторно. Образец из бревен для обоих:

Devenv:

114>------ Build started: Project: C:\...\API\, Configuration: Debug Any CPU ------ 
114>Could not get dependencies for project reference 'A'Could not get dependencies for  project reference 'BusinessLogic' Could not get dependencies for project reference 'BusinessLogic.ASPAgents' Could not get dependencies for project reference 'DataAccessLogicComponents' Could not get dependencies for project reference 'UI'Validating Web Site 
114>Building directory '/API/'. 
114> 
114>Validation Complete 

MSBuild:

121>C:\Scrubbed\API.metaproj : warning MSB3274: The primary reference "C:\Scrubbed\PreMVC\A\bin\Release\A.dll" could not be resolved because it was built against the ".NETFramework,Version=v4.5" framework. This is a higher version than the currently targeted framework ".NETFramework,Version=v4.0". 
121>C:\Scrubbed\API.metaproj : warning MSB3274: The primary reference "C:\Scrubbed\PreMVC\BusinessLogic\bin\Release\A.Web.BusinessLogic.dll" could not be resolved because it was built against the ".NETFramework,Version=v4.5" framework. This is a higher version than the currently targeted framework ".NETFramework,Version=v4.0". 
121>C:\Scrubbed\API.metaproj : warning MSB3275: The primary reference "C:\Scrubbed\PreMVC\BusinessLogic\bin\Release\A.Web.BusinessLogic.dll" could not be resolved because it has an indirect dependency on the assembly "A, Version=0.0.0.15, Culture=neutral, PublicKeyToken=060d385c0c45e767" which was built against the ".NETFramework,Version=v4.5" framework. This is a higher version than the currently targeted framework ".NETFramework,Version=v4.0". 

    C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_compiler.exe -v /API -p PreMVC\API\ -u -f PrecompiledWeb\API\ 

121>C:\Scrubbed\PreMVC\API\App_Code\File1.cs(7): error CS0234: The type or namespace name 'BusinessLogic' does not exist in the namespace 'A.Web' (are you missing an assembly reference?) [C:\Scrubbed\API.metaproj] 
121>C:\Scrubbed\PreMVC\API\App_Code\File1.cs(8): error CS0234: The type or namespace name 'UI' does not exist in the namespace 'A.Web' (are you missing an assembly reference?) [C:\Scrubbed\API.metaproj] 
121>C:\Scrubbed\PreMVC\API\App_Code\File1.cs(12): error CS0234: The type or namespace name 'UI' does not exist in the namespace 'A.Web' (are you missing an assembly reference?) [C:\Scrubbed\API.metaproj] 
121>C:\Scrubbed\PreMVC\API\App_Code\File2.cs(7): error CS0234: The type or namespace name 'BusinessLogic' does not exist in the namespace 'A.Web' (are you missing an assembly reference?) [C:\Scrubbed\API.metaproj] 
121>C:\Scrubbed\PreMVC\API\App_Code\File2.cs(8): error CS0234: The type or namespace name 'UI' does not exist in the namespace 'A.Web' (are you missing an assembly reference?) [C:\Scrubbed\API.metaproj] 
121>C:\Scrubbed\PreMVC\API\App_Code\File2.cs(12): error CS0234: The type or namespace name 'UI' does not exist in the namespace 'A.Web' (are you missing an assembly reference?) [C:\Scrubbed\API.metaproj] 
121>C:\Scrubbed\PreMVC\API\App_Code\File3.cs(7): error CS0234: The type or namespace name 'BusinessLogic' does not exist in the namespace 'A.Web' (are you missing an assembly reference?) [C:\Scrubbed\API.metaproj] 
121>C:\Scrubbed\PreMVC\API\App_Code\File3.cs(8): error CS0234: The type or namespace name 'UI' does not exist in the namespace 'A.Web' (are you missing an assembly reference?) [C:\Scrubbed\API.metaproj] 
121>Done Building Project "C:\Scrubbed\API.metaproj" (Rebuild target(s)) -- FAILED. 

Любая идея, почему Devenv ведет, но MSBuild немедленно потерпит неудачу?

+0

Запуск devenv из командной строки может отличаться от использования msbuild тем, что он может вытащить некоторые настройки пользователя/ui, которые не воспроизводятся для msbuild. Просто случайная мысль. –

ответ

2

Я получил ответ от мод на форумах MSDN. В основном MSBuild чрезвычайно строг в отношении зависимостей, где devenv просто запускает предупреждения, но продолжает.

Мы закончили тем, что перешли на .NET 4.5 полностью, поэтому мы исправили несоответствие и в итоге переместили нашу сборку в MSBuild.

0

Убедитесь, что вы добавляете ссылки на проекты в другие проекты и что все они используют ту же версию .NET framework.

+0

Я спрашиваю, почему кажется, что это работает, и кажется, что он терпит неудачу. Я обновил проекты до .NET 4.5 в любом случае и переключился на MSBuild, так как в случайном порядке (по одному - из 15 сборников) была проблема «Задача была отменена». – jmcdade

0

Не предупреждает ли в ваших журналах предупреждение?

«121> C: \ Scrubbed \ API.metaproj: warning MSB3274: Основная ссылка« C: \ Scrubbed \ PreMVC \ A \ bin \ Release \ A.dll »не может быть решена, поскольку она была создана против «.NETFramework, Version = v4.5». Это более высокая версия, чем текущая целевая среда «.NETFramework, Version = v4.0».

+1

Вопрос (я думаю), почему он работает для одного, но не для другого. –