Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net Web.config转换覆盖TFS文件夹中的主Web.config_Asp.net_Tfs_Web.config Transform - Fatal编程技术网

Asp.net Web.config转换覆盖TFS文件夹中的主Web.config

Asp.net Web.config转换覆盖TFS文件夹中的主Web.config,asp.net,tfs,web.config-transform,Asp.net,Tfs,Web.config Transform,上个月,我为各种配置设置了web.config转换:本地、开发、暂存、生产等。发布时,这些都可以工作,但现在看来,当我发布时,它会覆盖TFS源文件夹中的当前web.config,然后将其复制到指定的生成文件夹。这意味着,如果存在插入,它最终会在那些web.configs中创建重复项。我一直在寻找解决方案或原因,但我什么也找不到。除了删除主web.config中的一些重复标记外,我没有更改项目或转换中的任何设置。你知道是什么原因导致了这种情况吗?假设你使用的是基于任务的构建,检查你的构建定义,看看

上个月,我为各种配置设置了web.config转换:本地、开发、暂存、生产等。发布时,这些都可以工作,但现在看来,当我发布时,它会覆盖TFS源文件夹中的当前web.config,然后将其复制到指定的生成文件夹。这意味着,如果存在插入,它最终会在那些web.configs中创建重复项。我一直在寻找解决方案或原因,但我什么也找不到。除了删除主web.config中的一些重复标记外,我没有更改项目或转换中的任何设置。你知道是什么原因导致了这种情况吗?

假设你使用的是基于任务的构建,检查你的构建定义,看看你是否有“替换令牌”“复制文件”之类的任务,并检查你是如何设置任务的。

所以在逐行查看我的项目文件之后,我终于发现了以下问题:

<Target Name="AfterBuild">
    <TransformXml Source="Web.config" Transform="$(ProjectConfigTransformFileName)" Destination="$(WebProjectOutputDir)\Web.config" />
</Target>


移除它解决了这个问题。我不知道这是怎么潜入项目文件的,但你看

您是否使用TFS构建?您使用的是XAML构建还是基于新任务的构建?您的生成定义是什么样子的?请发布您的生成定义。很抱歉,我仍然掌握生成定义的窍门,因此不确定我们使用的是基于任务的生成还是基于XAML的生成。如果有帮助的话,我们正在使用持续集成。当我查看构建定义时,我没有看到任何对任务的引用,而只是对流程模板的引用,如果需要,我可以在这里提供(有点长)。另一件需要注意的是,在项目构建属性中,我为robots.txt文件设置了一些内容,该文件的工作方式与预构建中的工作方式相同。它将robots_txt子文件夹中该文件的特定配置版本(例如robots.staging.txt)复制到根目录下的/robots.txt中:copy/y“$(ProjectDir)robots_txt\robots.$(ConfigurationName).txt“$(ProjectDir)robots.txt”您似乎正在使用XAML构建。如何发布您的项目?登录到生成代理计算机,并使用MSBuild命令行手动生成项目,以查看将得到什么结果。如果MSBuild命令行仍然存在此问题,则可以共享重现此问题的步骤。