Порядок элементов MSBuild при использовании подстановочных знаков - PullRequest
5 голосов
/ 13 августа 2011

При создании элементов MSBuild из файлов с использованием подстановочных знаков, например,

<ItemGroup>
  <Scripts>$(ScriptsDirectory)\**\*.sql</Scripts>
</ItemGroup>

файлы кажутся всегда отсортированными в алфавитном порядке по пути.

Однако гарантирован ли этот порядок сортировки - могу ли я на него положиться?

Ответы [ 3 ]

6 голосов
/ 14 августа 2011

Да, MSBuild всегда будет сортировать в алфавитном порядке по пути, чтобы гарантировать повторяемость.(Это описано в моей новой книге "MSBuild Trickery")

0 голосов
/ 01 декабря 2015

Некоторое время назад я столкнулся с oddity , переходящим из Visual Studio 2008 в 2010 с упорядочением ItemGroup, который создавался с использованием подстановочного знака. Имена файлов, начинающиеся с символа подчеркивания '_', переходили от первых к результатам в конце.

В то время, когда я решил эту проблему с помощью MSBuild Extension Pack . Это обеспечивает TaskAction для явной сортировки ItemGroup.

1009 * Е.Г. *

<!-- Sort an ItemGroup alphabetically -->  
<MSBuild.ExtensionPack.Framework.MsBuildHelper TaskAction="Sort" InputItems1="@(MainDataFiles)">  
    <Output TaskParameter="OutputItems" ItemName="sorted"/>  
</MSBuild.ExtensionPack.Framework.MsBuildHelper>  
<Message Text="Sorted Items: %(sorted.Identity)"/> 
0 голосов
/ 13 июня 2012

Мне нужно было отсортировать ItemGroup файлов по фактическому имени файла, а не по полному пути. Поэтому я написал задачу MSBuild, надеюсь, это поможет ...

MSBuild сортирует группу элементов по имени файла

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...