Преобразование конфигурации VS 2010 создает нежелательные пробелы во время развертывания - PullRequest
7 голосов
/ 21 июля 2010

Я использую новые преобразования конфигурации VS 2010 для развертывания веб-сайтов. Чтобы заменить один параметр моих ApplicationSettings, я использую следующее преобразование конфигурации:

<setting name="TempPath" serializeAs="String" xdt:Transform="Replace" xdt:Locator="Match(name)">
    <value>C:\TEMP</value>
</setting>

Примечание: Между C: \ TEMP и конечным тегом нет пробелов

Это преобразование приводит к установке с нежелательным пробелом, как это:

<setting name="TempPath" serializeAs="String">
    <value>C:\TEMP
    </value>
</setting>

Если я использую этот параметр без обрезки, я получаю неправильное поведение.

Есть идеи?

Ответы [ 3 ]

6 голосов
/ 18 августа 2010

Это известная проблема в VS 2010. По словам Microsoft, она будет исправлена ​​для пакета обновления и следующего выпуска.

Обновление

Финальная версия SP1 решает эту проблему. Временные решения для удаления нежелательных переводов строки больше не нужны.

3 голосов
/ 21 октября 2010

Я просто хотел упомянуть, что есть обходной путь, опубликованный на странице выпуска MS connect пользователем john.rummell, который работал для меня безупречно.Просто добавьте это в ваш проект:

internal sealed partial class Settings
{
    public override object this[string propertyName]
    {
        get
        {
            // trim the value if it's a string
            string value = base[propertyName] as string;
            if (value != null)
            {
                return value.Trim();
            }

            return base[propertyName];
        }
        set { base[propertyName] = value; }
    }
}
0 голосов
/ 21 июля 2010

Форматирование Xml занимает место.так как содержимое тегов XML не заботит разрывы строк и пробелы.если вы хотите иметь строковые значения, я настоятельно рекомендую поместить их в атрибуты вместо InnerValue

<setting name="TempPath" value="C:\TEMP">
</setting>
...