2017-07-26 134 views
0

我不知道MSBuild脚本,现在没有时间学习它。我需要一个方法,在成功构建结束时重命名一个dacpac文件以包含当前正在构建的版本。构建后事件msbuild。在成功构建结束时重命名文件

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

有没有办法做到这一点?

+0

此问题的任何更新?我已经更新了我的答案更详细的信息,你可以检查它是否适合你。如果您有任何问题,请免费告知我。 –

+0

非常感谢你,像魅力一样工作。这真是一个很大的帮助。再次谢谢你。 – Mattaceten

回答

2

有没有办法做到这一点?

答案是肯定的。如果您不介意编辑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> 

如今如许,大会版本可与此宏您后生成事件。所以,你添加与下面的命令行生成后事件重命名通过复制任务的文件名:

copy /Y "(TfsDropLocation)\filename.dapac" "(TfsDropLocation)\[email protected](VersionNumber).dapac" 

如果你不想保留以前filename.dapac,您可以在生成后添加del命令事件:

del "(TfsDropLocation)\filename.dapac" 

注意:不要忽略生成后事件命令行中的双引号。

然后,你可以检查你的输出和Windows资源管理器,我使用的DLL文件来测试,你可以检查我的测试结果:

enter image description here

enter image description here

相关问题