在观看了Scott Hanselman的video on web deployment之后,我刚刚在VS2010 RC中的.NET 3.5项目上启用了配置转换。不幸的是,每次我发布时,我现在都会收到以下错误:
“TransformXml”任务失败 不料。 System.UriFormatException:无效 URI:URI为空。在 System.Uri.CreateThis(String uri, 布尔dontEscape,UriKind uriKind)
在System.Uri..ctor(String uriString) 在 Microsoft.Web.Publishing.Tasks.TransformXml.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)
如果我采用一个全新的VS2010网络应用程序,默认情况下我已经有配置转换,我没有问题所以我怀疑我的问题与项目有关。有没有人遇到过这个问题或对修复有任何想法?
答案 0 :(得分:66)
看起来答案简单而模糊;我有一个应用程序设置(密码),其中包含“>”符号。我尝试将应用程序转换为.NET 4,然后再转换回.NET 3.5,一切都运行正常,因为在此过程中符号已转义为“>”。在配置转换出现之前从未出现过这个问题,但至少修复现在很简单。
编辑:更详细的博客:Visual Studio 2010 Config Transformations TransformXml task failure
答案 1 :(得分:0)
仅供参考:我的项目已经针对.NET 4.0,因此我将其切换为3.5然后再切换到4.0,它也可以这样工作。