发布后将版本号保存到数据库

时间:2016-12-19 14:00:26

标签: database numbers save version clickonce

我们有通过ClickOnce发布的WPF应用程序。

我需要在每次成功发布后将ClickOnce版本号(自动递增)保存到数据库。

是否有像OnPublishSucces这样的事件可以在发布后触发数据库操作?

1 个答案:

答案 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="&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>

显然用自己的参数替换大写字母参数并使用&#34;在命令引号中需要双引号的地方(在这种情况下,围绕SQLCMD的文件路径和查询本身。

希望有所帮助。