2010年6月29日 星期二

Asp.Net 4.0 Xml 轉換錯誤

於執行 TFS build  的結果,找到了下面的錯誤

Error    1    The "TransformXml" task failed unexpectedly.
System.UriFormatException: Invalid URI: The URI is empty.
   at System.Uri.CreateThis(String uri, Boolean dontEscape, UriKind uriKind)
   at System.Uri..ctor(String uriString)
   at Microsoft.Web.Publishing.Tasks.TransformXml.Execute()
   at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
   at Microsoft.Build.BackEnd.TaskBuilder.ExecuteInstantiatedTask(ITaskExecutionHost taskExecutionHost, TaskLoggingContext taskLoggingContext, TaskHost taskHost, ItemBucket bucket, TaskExecutionMode howToExecuteTask, Boolean& taskResult)        0    0  

為什麼呢?完全看不懂。

原來,簡單地說是轉換失敗了。我的 Web.config 中,屬性的值裡的大於 > 這個字元,但這是不合法的。Visaul Studio 並不會抱怨。

例如:

<?xml version="1.0"?>
<configuration>
<appSettings>
  <add key="myKey" value="cdcdcdcdjkcjd>" /> <!-- 值裡有大於字元  -->
</appSettings>
</configuration>

而使用 MSDepoly 工具時,會使用 Xml Transform 來轉換 web.config,就會發生錯誤了。

只是,為什麼錯誤訊息是 Invalid URI 呢?

沒有留言:

Share with Facebook