【问题标题】:Save Version Number to Database After Publish发布后将版本号保存到数据库
【发布时间】:2016-12-19 14:00:26
【问题描述】:

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

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

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

【问题讨论】:

    标签: database numbers save version clickonce


    【解决方案1】:

    我为此苦苦挣扎了几个小时,最终从几个不同的来源拼凑了一个答案(绝对不是我自己做的)。此代码位于 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 的文件路径和查询本身。

    希望对您有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-05-04
      • 2014-06-22
      • 2015-07-17
      • 2020-09-24
      • 2016-08-01
      • 1970-01-01
      • 2017-05-31
      • 1970-01-01
      相关资源
      最近更新 更多