Я пытаюсь «исправить» сборку на нашем TF-сервере, которая помещает все в папку «drop» в одну большую плоскую копию (а не в отдельные дампы проекта, как это делает локальная сборка), и я получаюнемного расстроен - я буду честен и скажу, что это первый раз, когда я работал с MSBuild, и это как-то обошлось без меня - это не файл сборки, который я настроил с нуля.
Я нашел множество решений в Интернете, и большинство из них указывают на этот блог, , который выглядит хорошо.К сожалению, это, похоже, не решает мои проблемы.
В TFSBuild.proj у меня есть кусок кода, который выглядит следующим образом:
<SolutionToBuild Include="$(BuildProjectFolderPath)/../../mySolution.sln">
<Targets>SomeProject\Project</Targets>
<Properties>
CustomizableOutDir=true;
</Properties>
</SolutionToBuild>
И, насколько я могу судить почто CustomizableOutDir действительно имеет значение true, которое предположительно должно сохранять структуру каталогов.Я попытался отредактировать некоторые файлы проекта, как указано в блоге, примерно так ...
<Target Name="AfterCompile" Condition="'$(TeamBuildOutDir)' != ''">
<ItemGroup>
<CompileOutputs Include="$(OutDir)\**\*" />
</ItemGroup>
<Copy
SourceFiles="@(CompileOutputs)"
DestinationFolder=
"$(TeamBuildOutDir)\ProjectName\%(RecursiveDir)" />
</Target>
Но это ведет себя странно - если я редактирую несколько файлов проекта, я начинаю получать то, что выглядит как будто я подходил к правильному решению, но все еще не достаточно хорош - я получаю структуру каталогов, которая содержит папки, такие как MyProj1 и MyProj2, но, похоже, в MyProj2 все выходные данные из MyProj1 были сброшены в него (MyProj1 работает как яНадеюсь).Кроме того, в папке перетаскивания все еще все остальное сбрасывается в одну большую каплю (каталоги содержат дубликаты этой капли).
Кто-нибудь имеет представление о том, что может вызывать CustomizableOutDir длявести себя не так, как ожидалось?Или есть проблема с моим кодом файла csproj?