Post-生成事件 msbuild。在成功构建结束时重命名文件

Post-Build event msbuild. Rename file at end of successful build

我不懂 MSbuild 脚本,现在也没有时间学习。我需要在成功构建结束时使用一种方法来重命名 dacpac 文件以包含当前正在构建的版本。

示例:(TfsDropLocation)\filename.dapac 到 (TfsDropLocation\filename.1.0.0.0.dacpac)

有办法吗?

Is there a way to do this?

答案是肯定的。如果您不介意编辑 Visual Studio 项目文件,那么有一个简单的解决方案允许您使用如下所示的宏:@(VersionNumber):

为此,请卸载您的项目。然后在项目的最后,就在结束标记之前,将脚本放在下面:

<PropertyGroup>
   <PostBuildEventDependsOn>
     $(PostBuildEventDependsOn);
     PostBuildMacros;
   </PostBuildEventDependsOn>    
</PropertyGroup>

<Target Name="PostBuildMacros">
  <GetAssemblyIdentity AssemblyFiles="$(TargetPath)">
    <Output TaskParameter="Assemblies" ItemName="Targets" />
  </GetAssemblyIdentity>
  <ItemGroup>
    <VersionNumber Include="@(Targets->'%(Version)')"/>
  </ItemGroup>
</Target>

现在,正如承诺的那样,程序集版本可用于使用此宏的 post 构建事件。因此,您在 post-build 事件中使用以下命令行通过复制任务添加重命名文件名:

copy /Y  "(TfsDropLocation)\filename.dapac" "(TfsDropLocation)\filename.@(VersionNumber).dapac"

如果不想保留之前的filename.dapac,可以在post-build事件中添加一个del命令:

del "(TfsDropLocation)\filename.dapac"

注意:不要忽略 post-build 事件命令行中的双引号。

然后你可以查看你的输出和windows资源管理器,我使用文件dll测试,你可以查看我的测试结果: