Одно из решений, которые работавший меня прекрасный использовал WebDeploymentProject. У меня были 2/3 различные web.config файлы в моем сайте, и на публикуют, в зависимости от выбранного режима конфигурации (выпускать/подготавливать/и т.д....), я скопировал бы по сети. Release.config и переименовывают его к web.config в событии AfterBuild и удаляют тех, мне не нужно (сеть. Staging.config, например).
<Target Name="AfterBuild">
<!--Web.config -->
<Copy Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' " SourceFiles="$(SourceWebPhysicalPath)\Web.Release.config" DestinationFiles="$(OutputPath)\Web.config" />
<Copy Condition=" '$(Configuration)|$(Platform)' == 'Staging|AnyCPU' " SourceFiles="$(SourceWebPhysicalPath)\Web.Staging.config" DestinationFiles="$(OutputPath)\Web.config" />
<!--Delete extra files -->
<Delete Files="$(OutputPath)\Web.Release.config" />
<Delete Files="$(OutputPath)\Web.Staging.config" />
<Delete Files="@(ProjFiles)" />
</Target>
Словаря будет использовать порядок, который делает поиск эффективным, и вы не можете это изменить,
Вы можете просто использовать список объектов (двухэлементный кортеж в простом случае или даже класс) и добавить элементы в конец. Затем вы можете использовать линейный поиск, чтобы найти в нем элементы.
В качестве альтернативы вы можете создать или использовать другую структуру данных, созданную с целью поддержания порядка.
Как правило, вы можете разработать класс, который ведет себя как словарь, в основном реализуя методы __ contains __
, __ getitem __
, __ delitem __
, __ setitem __
и другие. Этот класс может вести себя как угодно, например, назначать отсортированный итератор по ключам ...