При публикации релизной версии через веб-развертывание я получаю ошибку - PullRequest
4 голосов
/ 08 марта 2011

У меня случилось нечто странное. Я использую файлы преобразования web.config, и при попытке публикации в локальном iis в качестве веб-развертывания я получаю следующую ошибку:

Ошибка 1160 Задача «ParameterizeTransformXml» неожиданно завершилась неудачей. System.UriFormatException: неверный URI: URI пуст. в System.Uri.CreateThis (строка URI, логическое значение DontEscape, UriKind uriKind) в System.Uri..ctor (String uriString) в Microsoft.Web.Publishing.Tasks.ParameterizeTransformXml.Execute ()
в Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute () в Microsoft.Build.BackEnd.TaskBuilder.ExecuteInstantiatedTask (ITaskExecutionHost taskExecutionHost, TaskLoggingContext taskLoggingContext, TaskHost taskHost, ведро ItemBucket, TaskExecutionMode howToExecuteTask, Boolean & taskResult)

Он работал до того, как я добавил несколько файлов изображений в проект, и он работает в режиме отладки, когда файлы преобразования в основном остаются идентичными.

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

Это под Visual Studio 2010 и Framework 4.0, Windows 7.

Ответы [ 3 ]

4 голосов
/ 14 февраля 2012

У меня было то же сообщение об ошибке.После того, как я скопировал в новую версию web.config, кто-то сделал много изменений вручную в другой среде.

Я нашел проблему с помощью квазибинарного поиска.Т.е. используя Beyond Compare, я бы скопировал в первую половину изменений и посмотрел, все-таки сгенерирована ли ошибка.Если это произойдет, то я начну снова и скопирую изменения только в первом квартале и т. Д.

Ошибка для меня была следующая:

<setting name="InvalidItemNameChars" value="\/:?&quot;&lt;>|[]" />

Обратите внимание на символ «больше чем»!

Я исправил его, изменив настройку на:

<setting name="InvalidItemNameChars" value="\/:?&quot;&lt;&gt;|[]" />
1 голос
/ 25 мая 2011

Что-то, возможно, отредактировало файл конфигурации, либо основной web.config (наиболее вероятно), либо преобразование, а также может иметь переключение формата кодирования с ANSI на UTF8 или аналогичное и путаться с экранированными символами.Я заметил это только при сохранении текущей и более старой версии в виде файлов и использовании сравнения данных за пределами сравнения.Помните, что предыдущее сравнение с использованием copy-paste в каждом окне сравнения не показывало проблему, поэтому сравните, используя файлы.

0 голосов
/ 20 июля 2017

Измените кодировку файла на UTF8 с переносом строк в Windows.Это можно сделать, посетив File > Advanced Save Options.

...