Visual studio 2010 通过web deploy发布发布版本时,我遇到一个错误

Visual studio 2010 通过web deploy发布发布版本时,我遇到一个错误,visual-studio-2010,web-deployment,Visual Studio 2010,Web Deployment,我发生了一些奇怪的事情。我使用web.config转换文件,当尝试将其发布到本地iis作为web部署时,会出现以下错误: 错误1160“ParametereTransformXML”任务意外失败。 System.UriFormatException:无效URI:URI为空。在 CreateThis(字符串Uri、布尔dontEscape、UriKind) at System.Uri..ctor(字符串uriString)at Microsoft.Web.Publishing.Tasks.Para

我发生了一些奇怪的事情。我使用web.config转换文件,当尝试将其发布到本地iis作为web部署时,会出现以下错误:

错误1160“ParametereTransformXML”任务意外失败。 System.UriFormatException:无效URI:URI为空。在 CreateThis(字符串Uri、布尔dontEscape、UriKind) at System.Uri..ctor(字符串uriString)at Microsoft.Web.Publishing.Tasks.ParameterizeTransformXml.Execute()
在 Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ItaskeExecutionHost.Execute() 在 Microsoft.Build.BackEnd.TaskBuilder.ExecuteInstatedTask(ITaskeExecutionHost taskExecutionHost,TaskLoggingContext TaskLoggingContext,TaskHost taskHost、ItemBucket、TaskExecutionMode howToExecuteTask、, 布尔值(&taskResult)

在我向项目中添加一些图像文件之前,它确实可以工作,当转换文件基本上仍然相同时,它在调试模式下也可以工作

有没有人遇到过这种情况,知道是什么原因造成的


这是在VisualStudio2010和Framework4.0、Windows7下实现的

某些东西可能编辑了配置文件,可能是主web.config(最有可能)或转换,也可能将编码格式从ANSI转换为UTF8或类似格式,并使用转义字符进行处理


我只是在将当前版本和旧版本保存为文件并使用beyond compare数据比较时才发现了它。请注意,以前在每个比较窗口中使用“复制粘贴”进行的比较没有显示问题,因此请使用文件进行比较。

我收到了相同的错误消息。它发生在我复制了一个新版本的web.config之后,有人在其他环境中手动对其进行了许多更改

我使用准二进制搜索找到了问题。也就是说,使用Beyond Compare,我会复制前半部分的更改,看看它是否仍然生成错误。如果有,那么我会重新开始,只在第一季度复制更改等

我的错误是以下设置:

<setting name="InvalidItemNameChars" value="\/:?&quot;&lt;>|[]" />
|[]”/>
请注意“大于”符号

我通过将设置更改为:

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

使用windows换行符将文件编码更改为UTF8。这可以通过访问
文件>高级保存选项来完成。我也遇到了同样的问题。在属性值(如>)中使用未编码的实体,项目可以正常构建,但无法正确转换。>会在解析器中突然关闭标记,并导致此错误ry模糊错误。修复方法是将其编码为。这似乎是Microsoft应该修复的错误,方法是使用清晰的消息使生成失败,或者允许此TransformXml步骤处理生成过程其余部分允许的相同XML冲突。