2017-07-26 60 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

相關問題