配置转换和“TransformXml任务失败”错误信息

34

我刚刚在看Scott Hanselman的网络部署视频后,在VS2010 RC上启用了.NET 3.5项目上的配置转换。不幸的是,每次我要发布时,都会出现以下错误:

"TransformXml"任务意外失败。 System.UriFormatException: 无效 URI:URI为空。 在 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)

如果我使用默认情况下已经具有配置转换的全新VS2010 Web应用程序,则没有问题,因此我认为我的问题与项目有关。有人遇到过这种情况吗?或者有任何修复的想法吗?


太棒了的视频,感谢分享链接。 - Bogdan Verbenets
2个回答

67

看起来答案很简单,但是却很难发现:我有一个应用程序设置(一个密码),其中包含了">"符号。我尝试将应用程序转换为.NET 4,然后再转回.NET 3.5,整个过程中该符号被转义为">",一切都运行得很好。在配置转换出现之前,从未遇到过这个字符的问题,但至少现在修复方案很简单。

编辑:关于此问题更详细的内容,请参考我的博客文章:Visual Studio 2010 Config Transformations TransformXml task failure


同样的问题出现在一个.NET 3.5 WCF服务中。你的解决方案非常有效。 - Kieran Senior

0

提醒一下:我的项目已经针对.NET 4.0进行了定位,所以我将其切换到3.5,然后再切换回4.0,这样也可以正常工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接