0

ビルド後のイベント マクロをカスタマイズする方法はありますか。新しいアセンブリを、アセンブリのバージョンと同じディレクトリ内のサブ フォルダに移動したいと考えています。

$(TargetDir)$(TargetFileName) $(TargetDir)$( ASSEMBLYVERSION )\$(TargetFileName) をコピーします

しかし、そのような「マクロ」はありません。実行可能ファイルをビルドしてバージョンを取得するようなもの

call foo.bat $(TargetName)

GetVersion.exe など、渡すアセンブリのバージョンを出力するマネージド アプリを呼び出して、foo.bat にターゲットのバージョンを評価させます。

for /f %%t in ('GetVersion.exe %1') do (
        set _version=%%t
    )
echo %_version%

何か案は??確かにマクロを直接カスタマイズする方法はありますか??

4

1 に答える 1

1

ビルド後のスクリプトで実行できるかどうかはわかりませんが、プロジェクト ファイルを変更して同じことを実行できます。

プロジェクトを右クリックし、「プロジェクトのアンロード」を選択します。

次に、もう一度右クリックして、[プロジェクトの編集] を選択します。

プロジェクト ファイルで、"AfterBuild" ターゲットを見つけます。通常、ファイルの下部にあり、コメントアウトされています。

コメントを外すか、次を貼り付けます。

<Target Name="AfterBuild">
  <GetAssemblyIdentity AssemblyFiles="path\to\bin\$(Configuration)\$(OutputName).dll">
    <Output TaskParameter="Assemblies" ItemName="AssemblyVersion"/>
  </GetAssemblyIdentity>

  <Copy 
    SourceFiles="path\to\bin\$(Configuration)\$(OutputName).dll" 
    DestinationFiles="path\to\bin\$(Configuration)\%(AssemblyVersion.Version)\$(OutputName).dll" />
</Target>

最後に、プロジェクトをもう一度右クリックして、[プロジェクトの再読み込み] を選択します。

変数名をいじる必要があり、コピーする前にフォルダーを作成する必要がある場合があります。うまくいけば、これは役に立ちます。

WiX の自動インストーラーのバージョン番号から得たアイデア

于 2009-10-06T15:40:39.117 に答える