2017-07-26 54 views
0

私はMSbuildスクリプティングについて知らないので、今すぐ学ぶ時間がありません。私は成功したビルドの最後に、現在構築されているバージョンを含むようにdacpacファイルの名前を変更するメソッドが必要です。ビルド後イベントmsbuild。成功ビルドの最後にファイル名を変更する

例:(TfsDropLocation)の\ filename.dapacへ(TfsDropLocationの\ filename.1.0.0.0.dacpac)

はこれを行う方法はありますか?

+0

その後、あなたは私がテストするために、ファイルのDLLを使用し、あなたの出力およびWindowsエクスプローラをチェックすることができ、あなたは私のテスト結果を確認することができますか?私は私の答えをより詳細な情報を更新した、それはあなたのために動作するかどうかを確認することができます。あなたはそれについて何か質問があれば、私に無料で知らせてください。 –

+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" 

注:ビルド後のイベントコマンドラインでは、二重引用符を無視しないでください。この質問のために任意の更新

enter image description here

enter image description here

関連する問題