【问题标题】:Implement BeforePublish as in AfterBuild在 AfterBuild 中实施 BeforePublish
【发布时间】:2014-03-23 07:11:47
【问题描述】:

我有两个应用程序配置文件(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 服务器时,配置文件没有发布。

我怎样才能完成相同的发布任务?

【问题讨论】:

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


【解决方案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>

【讨论】:

  • 你知道如何移动文件吗?
  • 不,实际上我没有,我不是 MSBuild 方面的专家,但是在 VS 2012 中这种解决方法失败了,微软宣布这不是官方技术!而且我必须在发布时使用链接文件来复制它!
猜你喜欢
  • 1970-01-01
  • 2019-12-16
  • 1970-01-01
  • 1970-01-01
  • 2023-03-14
  • 1970-01-01
  • 2017-08-09
  • 2014-11-25
  • 1970-01-01
相关资源
最近更新 更多