Я постараюсь сделать это просто. У меня есть файл решения Nexus.sln, который содержит 3 проекта. Dsl, DslPackage и NexusSetup. NexusSetup зависит от Dsl и DslPackage. Зависимости настраиваются в среде IDE в разделе Порядок сборки проекта, они перечислены как Dsl, DslPackage и NexusSetup. в разделе Зависимости NexsusSetup зависит от Dsl и DslPackage. Из IDE все счастливы, все строится в правильном порядке и успешно.
из командной строки работает
msbuild Nexus.sln
проект Dslpackage никогда не собирается.
Вот файл nexus.sln
Файл решения Microsoft Visual Studio, версия формата 10.00
Visual Studio 2008
Project ("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Dsl", "Dsl \ Dsl.csproj", "{BF42BD0F-8483-443E-8F1F-1A0599642B57}"
EndProject
Project ("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DslPackage", "DslPackage \ DslPackage.csproj", "{39171FE5-51EE-4CC4-BBEF-59D2F52C1532}"
EndProject
Project ("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NexusSetup", "NexusSetup \ NexusSetup.csproj", "{C65D94D7-81FC-4DBE-9CB3-79384113C0DA}"
EndProject
Глобальный
GlobalSection (TeamFoundationVersionControl) = preSolution
SccNumberOfProjects = 4
SccEnterpriseProvider = {4CA58AB2-18FA-4F8D-95D4-32DDF27D184C}
SccTeamFoundationServer = http://srvdeveltfs01.local:8080/
SccLocalPath0 =.
SccProjectUniqueName1 = Dsl \ Dsl.csproj
SccProjectName1 = Dsl
SccLocalPath1 = Dsl
SccProjectUniqueName2 = DslPackage \ DslPackage.csproj
SccProjectName2 = DslPackage
SccLocalPath2 = DslPackage
SccProjectUniqueName3 = NexusSetup \ NexusSetup.csproj
SccProjectName3 = NexusSetup
SccLocalPath3 = NexusSetup
EndGlobalSection
GlobalSection (SolutionConfigurationPlatforms) = предварительное решение
Отладка | Любой ЦП = Отладка | Любой ЦП
Release | Any CPU = Release | Любой ЦП.
EndGlobalSection
GlobalSection (ProjectConfigurationPlatforms) = postSolution
{BF42BD0F-8483-443E-8F1F-1A0599642B57} .Debug | Any CPU.ActiveCfg = Debug | Любой CPU
{BF42BD0F-8483-443E-8F1F-1A0599642B57} .Debug | Any CPU.Build.0 = Debug | Любой CPU
{BF42BD0F-8483-443E-8F1F-1A0599642B57} .Release | Any CPU.ActiveCfg = Release | Любой CPU
{BF42BD0F-8483-443E-8F1F-1A0599642B57} .Release | Any CPU.Build.0 = Release | Любой CPU
{39171FE5-51EE-4CC4-BBEF-59D2F52C1532} .Debug | Any CPU.ActiveCfg = Debug | Любой CPU
{39171FE5-51EE-4CC4-BBEF-59D2F52C1532} .Debug | Any CPU.Build.0 = Debug | Любой CPU
{39171FE5-51EE-4CC4-BBEF-59D2F52C1532} .Release | Any CPU.ActiveCfg = Release | Любой CPU
{39171FE5-51EE-4CC4-BBEF-59D2F52C1532} .Release | Any CPU.Build.0 = Release | Любой CPU
{C65D94D7-81FC-4DBE-9CB3-79384113C0DA} .Debug | Any CPU.ActiveCfg = Debug | Любой CPU
{C65D94D7-81FC-4DBE-9CB3-79384113C0DA} .Debug | Any CPU.Build.0 = Debug | Любой CPU
{C65D94D7-81FC-4DBE-9CB3-79384113C0DA} .Release | Any CPU.ActiveCfg = Release | Любой CPU
EndGlobalSection
GlobalSection (SolutionProperties) = предварительное решение
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection (TextTemplating) = postSolution
TextTemplating = 1
EndGlobalSection
EndGlobal
Вот журнал сборки
Microsoft (R) Build Engine Версия 3.5.30729.4918
[Microsoft .NET Framework, версия 2.0.50727.4918]
Copyright (C) Microsoft Corporation 2007. Все права защищены.
Сборка началась 29.07.2009 13:53:33.
Проект "c: \ Source \ AASDK \ Common \ Nexus \ Nexus.sln" на узле 0 (цели по умолчанию).
Конфигурация строительного решения «Debug | Any CPU».
Проект "c: \ Source \ AASDK \ Common \ Nexus \ Nexus.sln" (1) создает "c: \ Source \ AASDK \ Common \ Nexus \ Dsl \ Dsl.csproj" (2) на узле 0 (цели по умолчанию) ,
Ни один ресурс не устарел относительно своих исходных файлов. Пропуск генерации ресурсов.
CoreCompile:
Пропуск цели "CoreCompile", потому что все выходные файлы обновлены по отношению к входным файлам.
DSLToolsCreateProjectItemTemplates:
Пропуск цели "DSLToolsCreateProjectItemTemplates", поскольку она не имеет выходных данных.
_CopyOutOfDateSourceItemsToOutputDirectory:Пропуск цели "_CopyOutOfDateSourceItemsToOutputDirectory", поскольку все выходные файлы обновлены по отношению к входным файлам.
_CopyAppConfigFile:
Пропуск цели "_CopyAppConfigFile", потому что все выходные файлы обновлены относительно входных файлов.
CopyFilesToOutputDirectory:
Dsl -> c: \ Source \ AASDK \ Common \ Nexus \ Dsl \ bin \ Debug \ FA.Nexus.Dsl.dll
Готовый строительный проект "c: \ Source \ AASDK \ Common \ Nexus \ Dsl \ Dsl.csproj" (цели по умолчанию).
Проект "c: \ Source \ AASDK \ Common \ Nexus \ Nexus.sln" (1) строит "c: \ Source \ AASDK \ Common \ Nexus \ NexusSetup \ NexusSetup.csproj" (3) на узле 0 (цели по умолчанию) ,
Пропуск цели "CopySetupFiles", потому что у нее нет выходных данных.
c: \ Source \ AASDK \ Common \ Nexus \ NexusSetup \ Files.wxs (35): ошибка LGHT0100: файл типа «Файл» с именем «.. \ DslPackage \ bin \ Release \ FA.Nexus.DslPackage.dll» может не найден
c: \ Source \ AASDK \ Common \ Nexus \ NexusSetup \ Files.wxs (46): ошибка LGHT0100: файл типа «Файл» с именем «.. \ Dsl \ bin \ Release \ FA.Nexus.Dsl.dll» может не найден
c: \ Source \ AASDK \ Common \ Nexus \ NexusSetup \ Files.wxs (59): ошибка LGHT0100: файл типа 'Файл' с именем 'SourceDir .. \ DslPackage \ bin \ Release \ FA.Nexus.DslPackage.dll' невозможно найти.
c: \ Source \ AASDK \ Common \ Nexus \ NexusSetup \ Files.wxs (62): ошибка LGHT0100: файл типа «Файл» с именем «.. \ Dsl \ bin \ Release \ FA.Nexus.Dsl.dll» может не найден
c: \ Source \ AASDK \ Common \ Nexus \ NexusSetup \ Files.wxs (81): ошибка LGHT0100: файл типа «Файл» с именем «.. \ Dsl \ bin \ Release \ GeneratedCode \ ClassDiagramsSchema.xsd» не может быть найденный.
Готово Создание проекта "c: \ Source \ AASDK \ Common \ Nexus \ NexusSetup \ NexusSetup.csproj" (цели по умолчанию) - СБОЙ.
Готово Создание проекта "c: \ Source \ AASDK \ Common \ Nexus \ Nexus.sln" (цели по умолчанию) - СБОЙ.
Сборка НЕ удалась.
"c: \ Source \ AASDK \ Common \ Nexus \ Nexus.sln" (цель по умолчанию) (1) ->
"c: \ Source \ AASDK \ Common \ Nexus \ NexusSetup \ NexusSetup.csproj" (цель по умолчанию) (3) ->
(Цель ссылки) ->
c: \ Source \ AASDK \ Common \ Nexus \ NexusSetup \ Files.wxs (35): ошибка LGHT0100: файл типа «Файл» с именем «.. \ DslPackage \ bin \ Release \ FA.Nexus.DslPackage.dll» может не найден
c: \ Source \ AASDK \ Common \ Nexus \ NexusSetup \ Files.wxs (46): ошибка LGHT0100: файл типа «Файл» с именем «.. \ Dsl \ bin \ Release \ FA.Nexus.Dsl.dll» может не найден
c: \ Source \ AASDK \ Common \ Nexus \ NexusSetup \ Files.wxs (59): ошибка LGHT0100: файл типа 'Файл' с именем 'SourceDir .. \ DslPackage \ bin \ Release \ FA.Nexus.DslPackage.dll' невозможно найти.
c: \ Source \ AASDK \ Common \ Nexus \ NexusSetup \ Files.wxs (62): ошибка LGHT0100: файл типа «Файл» с именем «.. \ Dsl \ bin \ Release \ FA.Nexus.Dsl.dll» может не найден
c: \ Source \ AASDK \ Common \ Nexus \ NexusSetup \ Files.wxs (81): ошибка LGHT0100: файл типа «Файл» с именем «.. \ Dsl \ bin \ Release \ GeneratedCode \ ClassDiagramsSchema.xsd» не может быть найдено.
0 Warning(s)
5 Error(s)
прошедшее время 00: 00: 02.23