У меня есть базовый скрипт MSBuild, который включает в себя этап для компиляции / сборки проекта. Выглядит так:
....
<ItemGroup>
<ProjectReferences Include="loc1\Project1.csproj"/>
<ProjectReferences Include="loc2\Project2.csproj"/>
<ProjectReferences Include="loc3\Project3.csproj"/>
</ItemGroup>
....
<Target Name="BuildProjects">
<Message Text="Beginning main project build"/>
<MSBuild Projects="@(ProjectReferences)" Targets="Build" Properties="Configuration=$(Configuration);ProjectBuild=$(ProjectBuild);AppDir=$(AppDir)">
<Output TaskParameter="TargetOutputs" ItemName="AssembliesBuilt"/>
</MSBuild>
<!--<CallTarget Targets="BuildToolkit"/>-->
</Target>
Project3.csproj
- это проект веб-служб .NET 3.5. Конфигурация передается в командной строке.
Сначала была проблема с System.Linq, которую не удалось решить; Я исправил это, создав ссылку на System.Core
непосредственно в файле проекта (очевидно, это часто случается и требует этого исправления).
Теперь, когда я строю этот проект в режиме отладки, все хорошо. Тем не менее, при попытке построить в режиме релиза, это терпит неудачу, как это с мая из этих сообщений, относящихся ко всем видам сборок:
Considered "c:\Program Files (x86)\Reference Assemblies\Microsoft\VST040\v8.0\MyReferencedProjectAssembly.dll", but it didn't exist.
Это происходит много раз для ряда ссылок. Странно, но после этого я переключаюсь обратно в режим отладки, и после сброса режима он не может быть собран заново. Мне нужно удалить нарушающий Project3 из файла MSBuild, запустить снова (что работает) и снова добавить нарушающий Project3 обратно в файл, прежде чем он снова заработает в режиме отладки.
Я в тупике. Есть идеи?