Не удается заставить преобразование Web.config работать - PullRequest
0 голосов
/ 04 января 2012

Прежде всего, мы не используем проект веб-приложения, мы используем проект типа веб-сайта.

В нашем проекте у нас есть 3 конфигурации сборки: Dev (для разработки), Demo (для тестирования) и Live (финальная версия, конечно).

У нас есть два файла (но в итоге это будет 4), которые:

  • Web.config
  • Web.Dev.config

Отрывок из первого:

<?xml version="1.0"?>
<configuration>
  <connectionStrings>
    <add name="SomeConnectionString" connectionString="oldConnStr" providerName="System.Data.SqlClient"/>
  </connectionStrings>
  <system.web>
    <compilation targetFramework="4.0" debug="false">
      <assemblies>
        <add assembly="System.Data.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
        <add assembly="System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
      </assemblies>
    </compilation>
  </system.web>
</configuration>

И это преобразование:

<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
  <connectionStrings>
    <add name="SomeConnectionString" connectionString="newConnString" providerName="System.Data.SqlClient" xdt:Transform="Replace" xdt:Locator="Match(name)" />
  </connectionStrings>
  <system.web>
    <compilation debug="true" xdt:Transform="SetAttributes(debug)" />
  </system.web>
</configuration>

Он вообще не работает, также Web.config не становится «расширяемым», скриншот:

Web.config isn't expandable
Значки взяты из Team Foundation Server

Кто-нибудь знает, как заставить это работать?

Ответы [ 2 ]

2 голосов
/ 19 января 2012

Я обнаружил, что этого нельзя сделать в проекте веб-сайта. Для этого требуется файл .csproj, а на веб-сайте его нет.

1 голос
/ 04 января 2012

Вам необходим экземпляр конфигурации, соответствующий вашим преобразованиям web.config. Например, чтобы Web.Dev.config компилировал и преобразовывал (во время веб-развертывания и т. Д.), Вам необходимо скомпилировать проект в конфигурации 'Dev'.

Если у вас не определена конфигурация Dev (по умолчанию вы обычно получаете конфигурацию Debug и Release при запуске нового проекта VS), вы можете щелкнуть раскрывающийся список со всеми перечисленными доступными конфигурациями. Обычно это можно найти рядом с зеленой кнопкой «Play» (начать отладку) в Visual Studio. Выберите параметр «Диспетчер конфигурации», а затем для выбранного проекта выберите раскрывающийся список конфигурации и выберите. Затем вы можете создать конфигурацию под названием Dev (и при необходимости скопировать настройки из существующей конфигурации). Не забудьте обновить дерево проекта, как только это будет сделано.

Стоит также отметить, что преобразования не применяются во время стандартных сборок VS (т. Е. Ctrl + Shift + B). Они обычно применяются, когда приложение выпускается через Web Deploy или какой-либо инструмент развертывания. Применяемое преобразование будет зависеть от выбранной конфигурации сборки. То есть разверните в конфигурации 'Dev', и ваши преобразования web.dev.config будут применены.

...