Vb.net Web.config正在被msbuild重命名

Vb.net Web.config正在被msbuild重命名,vb.net,visual-studio,msbuild,visual-studio-2013,Vb.net,Visual Studio,Msbuild,Visual Studio 2013,我正在使用VS2013构建一个Web服务。构建Web.config文件时,它将被重命名为“{projectname}.dll.config” 有一个步骤,\u CopyAppConfigFile在其中被重命名,显示在输出窗口中。我可以解决这个问题,通过将web.config设置为始终复制,这会产生两个文件,web.config和x.dll.config,我可以使用它们,但如果有人知道如何使用,我想完全避免使用它们 编辑:看起来这是MSBuild文件的结果,位于: C:\Program Files

我正在使用VS2013构建一个Web服务。构建Web.config文件时,它将被重命名为“{projectname}.dll.config”

有一个步骤,\u CopyAppConfigFile在其中被重命名,显示在输出窗口中。我可以解决这个问题,通过将web.config设置为始终复制,这会产生两个文件,web.config和x.dll.config,我可以使用它们,但如果有人知道如何使用,我想完全避免使用它们

编辑:看起来这是MSBuild文件的结果,位于:

C:\Program Files\MSBuild\12.0\bin\Microsoft.Common.CurrentVersion.targets

我认为你的项目类型不对。您是否将其创建为web项目?这在你的csproj文件中吗

{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}

349c5851-65df-11da-9384-00065b846f21=Web应用程序 fae04ec0-301f-11d3-bf4b-00c04f79efbc=C#项目

嗯,,
Ojf

我可以在C#ASP.NET MVC项目中的Visual Studio 2013默认安装中重新创建它。我注意到了这一点,因为我开始过渡到VisualStudio2013,但我们的构建服务器仍然在VisualStudio2012上;在我的一次提交之后,我们的安装项目失败了,因为在生成服务器上没有生成我在计算机上获取的多余配置文件

这似乎是以前版本的MSBuild 4.0/Visual Studio 2012和新版本的MSBuild 12.0/Visual Studio 2013中的工作方式存在差异

在Visual Studio 2013中,
$(ProjectConfigFileName)
属性被初始化为
Web.config
[1],该属性被复制到
$(AppConfig)
[2],这会导致
\u CopyAppConfigFile
运行[3],导致命名不必要的配置文件并将其复制到
bin
目录

在Visual Studio 2012中,过程与此类似,只是其版本的Microsoft.WebApplication.targets缺少2013版本中的此部分:

  <!-- Instruct ResolveAssemblyReferences in MS.Common.targets to generate suggested binding redirects. -->
  <PropertyGroup>
        <AutoUnifyAssemblyReferences>false</AutoUnifyAssemblyReferences>
        <AppConfig Condition="'$(AppConfig)' == '' And Exists('$(ProjectConfigFileName)')">$(ProjectConfigFileName)</AppConfig>
  </PropertyGroup>
然后你会感觉更好,知道这不是你的特定项目或系统设置的问题,这只是VisualStudio2013现在做事情的方式


上述文件位置:

[1] C:\Program Files(x86)\MSBuild\Microsoft\VisualStudio\v12.0\Web\Microsoft.Web.Publishing.targets

[2] C:\Program Files(x86)\MSBuild\Microsoft\VisualStudio\v12.0\WebApplications\Microsoft.WebApplication.targets


[3] C:\Program Files(x86)\MSBuild\12.0\Bin\Microsoft.Common.CurrentVersion.targets

这是一个VB.net,而不是C#项目,它有:{349c5851-65df-11da-9384-00065b846f21};{F184B08F-C81C-45F6-A57F-5ABD9991F28F}谢谢你提供的信息,@Nicholas。您知道是什么工具在为构建后步骤读取XML吗?
  <Target Name="AfterBuild">
        <Delete ContinueOnError="true" Files="$(TargetPath).config" />
  </Target>