我们有通过ClickOnce发布的WPF应用程序。
我需要在每次成功发布后将ClickOnce版本号(自动递增)保存到数据库。
是否有像OnPublishSucces
这样的事件可以在发布后触发数据库操作?
答案 0 :(得分:0)
我在这个问题上挣扎了几个小时,并最终修补了几个不同来源的答案(绝对不是我自己做的)。此代码位于csproj文件的结束标记之前。您无法通过IDE更改发布后事件。所以目标名称=" AfterPublish"仅在发布事件之后触发,而不是构建。下面的代码抓住了应用程序版本。该命令利用SQLCMD.exe应用程序执行查询。
<Target Name="AfterPublish">
<GetAssemblyIdentity AssemblyFiles="$(TargetPath)">
<Output TaskParameter="Assemblies" ItemName="Targets" />
</GetAssemblyIdentity>
<ItemGroup>
<VersionNumber Include="@(Targets->'%(Version)')" />
</ItemGroup>
<Exec Command=""C:\Program Files\Microsoft SQL Server\100\Tools\Binn\SQLCMD.exe" -S SERVERNAME -U USERNAME -P PASSWORD -d DATABASENAME -Q "UPDATE [TABLENAME] SET [COLUMNNAME] = '@(VersionNumber)'"" />
</Target>
显然用自己的参数替换大写字母参数并使用&#34;在命令引号中需要双引号的地方(在这种情况下,围绕SQLCMD的文件路径和查询本身。
希望有所帮助。