2016-12-19 8 views
0

ClickOnce経由で公開するWPFアプリケーションがあります。公開後のバージョン番号をデータベースに保存

パブリッシュが成功するたびに、ClickOnceのバージョン番号(自動的にインクリメント)をデータベースに保存する必要があります。

OnPublishSuccesのように、公開後にデータベース操作をトリガできるイベントはありますか?

答えて

0

私はこの問題に2,3時間苦労し、最終的にはいくつかの異なるソースから回答をまとめました。このコードは、csprojファイルの終了タグの直前にあります。 IDE経由で公開後イベントを変更することはできません。したがって、Target Name = "AfterPublish"は、ビルドではなくパブリッシュ・イベントの後にのみトリガーされます。以下のコードは、アプリケーションのバージョンを取得します。このコマンドは、SQLCMD.exeアプリケーションを使用してクエリを実行します。

<Target Name="AfterPublish"> 
    <GetAssemblyIdentity AssemblyFiles="$(TargetPath)"> 
     <Output TaskParameter="Assemblies" ItemName="Targets" /> 
    </GetAssemblyIdentity> 
    <ItemGroup> 
     <VersionNumber Include="@(Targets->'%(Version)')" /> 
    </ItemGroup> 
    <Exec Command="&quot;C:\Program Files\Microsoft SQL Server\100\Tools\Binn\SQLCMD.exe&quot; -S SERVERNAME -U USERNAME -P PASSWORD -d DATABASENAME -Q &quot;UPDATE [TABLENAME] SET [COLUMNNAME] = '@(VersionNumber)'&quot;" /> 
    </Target> 

は明らかに独自のパラメータで大文字パラメータを交換し、これまでに二重引用符は、SQLCMDのファイルパスとクエリ自体の周りのこの場合(コマンド引用符内で必要とされている"を使用しています。

希望を助けてください。

関連する問題