VS2010 Build Deployment Package + раздел Group / пользовательские настройки + SetParameters.xml - PullRequest
2 голосов
/ 03 сентября 2011

Я использую «Build Deployment Package» (сокращенно BDP) от visual studio 2010 уже несколько месяцев. Он прекрасно работает и выполнил основные требования, которые мы хотели.

Я решил сделать еще один шаг и выяснить, как получить свою пользовательскую конфигурацию, чтобы ее можно было изменить в файле Project.SetParameters.xml, созданном BDP. То, как мы используем это, мы создаем этот пакет развертывания и доставляем его на сервер клиентов. Каждый сервер может отличаться, поэтому мы храним файл SetParameters.xml на сервере и просто заменяем zip-файл для последующих обновлений. Мы используем инструмент WebDeploy для развертывания его с помощью поставляемого файла cmd, созданного Build Deployment Package.

Я начал работать над этой трансформационной веб-конфигурацией, которая довольно крутая, но я не думаю, что полностью ее понимаю. Я могу заставить его выполнять элементы, которые являются нормальными в файле web.config (например, строку подключения, настройки веб-сервера и т. Д.), Однако я не могу на всю жизнь заставить его сгенерировать параметры для разделов конфигурации, которые являются частью других библиотек DLL. включен в web.config. Например:

Например. скажем, это web.config для веб-проекта, который ссылается на несколько других сборок:

<?xml version="1.0"?>
    <configuration>
      <configSections>
        <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
          <section name="SomeAssembly.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
        </sectionGroup>
      </configSections>
      <applicationSettings>
        <SomeAssembly.Properties.Settings>
          <setting name="ExportLocation" serializeAs="String">
            <value>C:\MediaExports\</value>
          </setting>
        </SomeAssembly.Properties.Settings>
        </applicationSettings>
    </configuration>

и мой трансформатор:

<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
  <configSections>
    <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
      <section name="SomeAssembly.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
    </sectionGroup>
  </configSections>

  <SomeAssembly.Properties.Settings>
    <setting name="ExportLocation" value="[MakeMeSetParameter.xml-Entry]" serializeAs="String" xdt:Transform="SetAttributes" xdt:Locator="Match(value)"/>
  </SomeAssembly.Properties.Settings>

</configuration>

Пример файла project.xml (не из вышеприведенного, но сгенерированного для моего проекта):

    <?xml version="1.0" encoding="utf-8"?>
    <parameters>
      <setParameter name="IIS Web Application Name" value="SomeIISNameHere" />
      <setParameter name="SomeAssemblySetting-SomeDescriptionOddPlaceforit" value="TheValueToBePlaced" />
<setParameter name="SomeGeneratedValueIwant" value="TheNewMediaExportLocation"/>
    </parameters>

Я не могу понять, что поместить в преобразователь web.config, чтобы он генерировал выходные данные для Project.SetParameters.xml. «Токенизированные» параметры.

Теперь я знаю, что не до конца понимаю, но не могу найти примеров людей, использующих пользовательские конфигурации для других сборок, на которые ссылается проект. Похоже, что почти все примеры касаются строк соединений и других общих элементов web.config.

Самое близкое, что я мог найти к тому, что я пытаюсь сделать, это http://sedodream.com/2010/11/11/ASPNETWebApplicationPublishPackageTokenizingParameters.aspx, однако, опять-таки речь идет о строках соединения, а не о пользовательских настройках параметров для других сборок, которые я хочу установить. Я хочу создать эти токены для чего-либо в web.config.

Итак, мой вопрос: как нам сконфигурировать файл конфигурации трансформатора, чтобы BDP мог генерировать SetParameters.xml с дополнительными узлами setParameter для пользовательских конфигураций в web.config?

1 Ответ

4 голосов
/ 03 сентября 2011

http://vishaljoshi.blogspot.com/2010/07/web-deploy-parameterization-in-action.html

Также хорошее чтение: http://vishaljoshi.blogspot.com/2010/06/parameterization-vs-webconfig.html

Это было то, что я искал.Надеюсь, что это помогает кому-то еще.

...