2016-12-19 3 views
0

ClickOnce를 통해 게시하는 WPF 응용 프로그램이 있습니다.게시 후 데이터베이스에 버전 번호 저장

게시 성공 후 데이터베이스에 ClickOnce 버전 번호 (자동 증가)를 저장해야합니다.

게시 후 데이터베이스 작업을 트리거 할 수있는 OnPublishSucces과 같은 이벤트가 있습니까?

답변

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> 

는 분명히 자신의 매개 변수를 대문자 매개 변수를 대체하고 지금까지 큰 따옴표가 SQLCMD의 파일 경로와 쿼리 자체의 주위에이 경우 (명령 따옴표 필요 "를 사용합니다.

희망을 도움이됩니다.