【解決方法】ビジュアル スタジオ ポスト ビルド

プログラミングQA

[ad_1]

Visual Studio のビルドが完了した後、InstallShield プロジェクト ファイルの “ProductVersion” タグを新しいアセンブリ バージョン情報で更新する任務を負っています。

それを行う簡単な C# コンソール アプリを作成することもできますが、他の誰かがより良いアイデアを持っているかどうか疑問に思っています。

ありがとう

私が試したこと:

Google と CodeProject の両方で解決策を調べてみました。 私が見つけたものは何も私の問題に対処しませんでした。

解決策 1

私ならアプリを作成します。次に、ビルド後のステップ (リリース バージョンのみ) として設定し、アセンブリ バージョンをコマンド ライン パラメーターとして渡します。

これは役立つかもしれません: ビルド後のイベント中にアセンブリ バージョンを確認する[^]

解決策 2

グリフ、これは私がこれまでに持っているものです:

<Target Name="PreBuildMacros">

    <GetAssemblyIdentity AssemblyFiles="$(TargetPath)">
        <Output TaskParameter="Assemblies" ItemName="Targets" />
    </GetAssemblyIdentity>

    <ItemGroup>
        <PreBuildVersionNumber Include="@(Targets->'%(Version)')"/>
    </ItemGroup>

</Target>

<PropertyGroup>

    <PreBuildMacrosBuildEventDependsOn>
        $(PreBuildEventDependsOn);
        PreBuildMacros;
    </PreBuildMacrosBuildEventDependsOn>

    <PreBuildEvent>
        echo PRE-BUILD ASSEMBLY VERSION IS: @(PreBuildVersionNumber)
    </PreBuildEvent>

</PropertyGroup>



<Target Name="PostBuildMacros">

    <GetAssemblyIdentity AssemblyFiles="$(TargetPath)">
        <Output TaskParameter="Assemblies" ItemName="Targets" />
    </GetAssemblyIdentity>

    <ItemGroup>
        <PostBuildVersionNumber Include="@(Targets->'%(Version)')"/>
    </ItemGroup>
</Target>

<PropertyGroup>

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

    <PostBuildEvent>
        echo POST-BUILD ASSEMBLY VERSION IS: @(PostBuildVersionNumber)
    </PostBuildEvent>

</PropertyGroup>

ビルド前とビルド後の両方のバージョン番号をキャプチャして、このバッチ ファイルに渡すことができると考えています。

@echo off
SETLOCAL ENABLEEXTENSIONS
SETLOCAL DISABLEDELAYEDEXPANSION

if "%~1"=="" findstr "^::" "%~f0"&GOTO:EOF
for /f "tokens=1,* delims=]" %%A in ('"type %3|find /n /v """') do (
    set "line=%%B"
    if defined line (
        call set "line=echo.%%line:%~1=%~2%%"
        for /f "delims=" %%X in ('"echo."%%line%%""') do %%~X
    ) ELSE echo.
)

ただし、ビルド前のバージョンを取得できないようです #. それに取り組んでいます。 これが完了したら、リリース バージョンのチェックを追加します。

ありがとう

[ad_2]

コメント

タイトルとURLをコピーしました