在AfterBuild中实现BeforePublish

时间:2013-01-23 12:39:16

标签: visual-studio-2010 msbuild msbuild-task

我有两个应用程序配置文件(app.debug.config和app.production.config),我发现这个解决方案是根据当前的构建配置名称将配置文件复制到输出文件夹:

 <Target Name="AfterBuild">
    <Delete Files="$(TargetDir)$(TargetFileName).config" />
    <Copy SourceFiles="$(ProjectDir)\App.$(Configuration).config" DestinationFiles="$(TargetDir)$(TargetFileName).config" />
  </Target>

所以在选择(生产)构建配置之后,MSbuild将自动复制app.production.config并将其重命名为输出文件夹中的projectname.config。

不幸的是,发布的情况并不相同, 因为当我将项目发布到Web服务器时,配置文件不会发布。

如何进行相同的发布任务?

1 个答案:

答案 0 :(得分:1)

我找到了解决方案,我将以下内容添加到项目文件中:

  <ItemGroup>
    <CustomConfigFile Include="$(ProjectDir)\App.$(Configuration).config">
      <Visible>False</Visible>
    </CustomConfigFile>
  </ItemGroup>
<Target Name="BeforePublish">
<CreateItem Include="@(CustomConfigFile)" AdditionalMetadata="TargetPath=$(TargetFileName).config;IsDataFile=false">
      <Output TaskParameter="Include" ItemName="_DeploymentManifestFiles" />
    </CreateItem>
</Target>