특정 사용자 지정 인수를 사용하여 빌드 정의 쿼리

AspiringDevOpsGuru

특정 사용자 지정 인수가있는 빌드 정의 목록을 반환하는 SQL 쿼리에 대한 도움이 필요합니다.

이 쿼리를 살펴 보았지만 더 드릴 다운하는 방법을 파악하는 데 약간의 어려움이 있습니다.

;WITH XMLNAMESPACES('clr-namespace:Microsoft.TeamFoundation.Build.Workflow.Activities;assembly=Microsoft.TeamFoundation.Build.Workflow' AS mtbwa, 
DEFAULT 'clr-namespace:System.Collections.Generic;assembly=mscorlib'), 
q AS (
  SELECT CAST(bd.ProcessParameters AS XML) p
  FROM dbo.tbl_BuildDefinition bd     
  ) 
SELECT  
  X.Doc.query('mtbwa:BuildSettings') AS 'Node',
  X.Doc.value('(mtbwa:BuildSettings/@ProjectsToBuild)[1]', 'VARCHAR(100)') AS 'ProjectsToBuild'
FROM q 
CROSS APPLY p.nodes('/Dictionary') AS X(Doc)

다음은이 쿼리에서 반환 된 XML의 예입니다.

<Dictionary x:TypeArguments="x:String, x:Object" xmlns="clr-namespace:System.Collections.Generic;assembly=mscorlib" xmlns:mtbwa="clr-namespace:Microsoft.TeamFoundation.Build.Workflow.Activities;assembly=Microsoft.TeamFoundation.Build.Workflow" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  <mtbwa:BuildSettings x:Key="BuildSettings" ProjectsToBuild="$/ACME/Dev/v1.0.0/Source/ACME/ACME.sln">
    <mtbwa:BuildSettings.PlatformConfigurations>
      <mtbwa:PlatformConfigurationList Capacity="1">
        <mtbwa:PlatformConfiguration Configuration="ACMS Website" Platform="Any CPU" />
      </mtbwa:PlatformConfigurationList>
     </mtbwa:BuildSettings.PlatformConfigurations>
   </mtbwa:BuildSettings>
   <mtbwa:TestSpecList x:Key="TestSpecs" Capacity="1">
     <mtbwa:TestAssemblySpec MSTestCommandLineArgs="{x:Null}" TestSettingsFileName="{x:Null}" AssemblyFileSpec="**\*test*.dll" CategoryFilter="!CodedUITest" />
   </mtbwa:TestSpecList>
   <mtbwa:SourceAndSymbolServerSettings x:Key="SourceAndSymbolServerSettings" SymbolStorePath="\\ACME.com\dfs\USA\AppDev\TeamBuild\Symbols" />
   <mtbwa:AgentSettings x:Key="AgentSettings" MaxWaitTime="04:00:00" Name="*" Tags="" />
   <x:Boolean x:Key="SCA">False</x:Boolean>
   <x:String x:Key="SSCProjectVersion">ACME v1.0.0</x:String>
</Dictionary>

<x:Boolean x:Key="SCA">False</x:Boolean>반환 된 XML 일부로 이동 하려고합니다 . 이를 수행하는 방법에 대한 아이디어는 항상 감사합니다.

해결책
크레딧은 제안에 대한 jessehouwing에게갑니다.

TfsTeamProjectCollection server = new TfsTeamProjectCollection(new Uri("http://acmetfs:8080/tfs"));
server.EnsureAuthenticated();
IBuildServer build = (IBuildServer)server.GetService(typeof(IBuildServer));
IBuildDefinition buildDefinition = build.GetBuildDefinition("ACME", "ACME_v1.0.0");

object argumentValue;
if (WorkflowHelpers.DeserializeProcessParameters(buildDefinition.ProcessParameters).TryGetValue("SCA", out argumentValue))
{
  Console.WriteLine(argumentValue);
}        
Jessehouwing

경고

TFS 운영 데이터 저장소를 직접 쿼리하는 것은 권장되지 않으며 이러한 필드의 내용은 공지없이 릴리스와 핫픽스간에 변경 될 수 있습니다. 이를위한 공식적인 방법은 클라이언트 개체 모델을 사용하는 것입니다. 실수로 데이터를 변경하면 서버가 지원되지 않는 상태가됩니다.

TFS 클라이언트 개체 모델은 빌드 정의를 쿼리 하는 비교적 쉬운 API를 제공합니다 . 여기에서 표준 .NET XML 클래스 (Linq-2-XML 또는 표준 XPathNavigator)를 사용하여 원하는 정보를 빠르게 얻을 수 있습니다. 찾고있는 매개 변수 는 빌드 메타 데이터에 저장 될 수도 있습니다 .

이로 인해 다음 코드가 생성됩니다 (OP에서 제공).

TfsTeamProjectCollection server = new TfsTeamProjectCollection(new Uri("http://acmetfs:8080/tfs"));
server.EnsureAuthenticated();
IBuildServer build = (IBuildServer)server.GetService(typeof(IBuildServer));
IBuildDefinition buildDefinition = build.GetBuildDefinition("ACME", "ACME_v1.0.0");

object argumentValue;
if (WorkflowHelpers.DeserializeProcessParameters(buildDefinition.ProcessParameters).TryGetValue("SCA", out argumentValue))
{
  Console.WriteLine(argumentValue);
}    

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

PowerShell 빌드 단계 내에서 TFS 빌드 정의 사용자 지정 변수를 쿼리하는 방법

분류에서Dev

Django의 ManyToManyField에 대한 특정 인수를 사용하여 양식에서 쿼리 사용자 지정

분류에서Dev

SCons의 VariantDir 및 Repository를 사용하여 사용자 지정 생성기를 사용하여 빌드

분류에서Dev

사용자 지정 빌드 변수

분류에서Dev

특정 jsonfromat을 사용하여 JsonObject를 빌드하는 방법

분류에서Dev

CakePHP :: 사용자 정의 SQL 쿼리를 사용하여 드롭 다운을 만드는 방법

분류에서Dev

특정 Google 서비스를 쿼리하지 않고 사용자 인증

분류에서Dev

릴리스 파이프 라인에서 빌드 파이프 라인의 사용자 지정 변수를 사용하는 방법

분류에서Dev

htacess를 사용하여 모든 사용자 정의 페이지를 특수 페이지로 리디렉션

분류에서Dev

여러 테이블을 사용하는 MySQL 사용자 지정 조인 쿼리

분류에서Dev

pre_get_post를 사용하여 Wordpress 쿼리 사용자 지정

분류에서Dev

사용자 별 계정 사용량 확인 방법> 특정 날짜 및 특정 쿼리를 사용한 시간

분류에서Dev

Silverlight를 사용하여 C #에서 그리드의 특정 행에 색을 지정하는 방법

분류에서Dev

여러 인수를 사용하여 이벤트 로그 쿼리 형식 지정

분류에서Dev

Mongoose : 사용자 지정 함수를 사용하여 쿼리 / 집계의 값 변환

분류에서Dev

Grunt의 특정 폴더에 대한 플래그를 사용하여 빌드

분류에서Dev

정적 메서드를 사용하여 문자열의 특정 문자 검색

분류에서Dev

변수를 사용하여 문자열의 특정 문자를 가리킴

분류에서Dev

특정 열만 반환하는 Redmine 사용자 지정 쿼리

분류에서Dev

jQuery를 사용하여 WTForm의 특정 필드 지우기

분류에서Dev

WooCommerce : 특정 페이지에 대해 WordPress 사용자 정의 필드를 사용하여 장바구니에 추가 옆에 사용자 정의 버튼 추가

분류에서Dev

susy를 사용하여 div 내부에 사용자 지정 그리드 배치

분류에서Dev

특정 사용자의 이미지를 업로드하여 다른 사용자가 특정 이미지를 볼 수 없도록 함

분류에서Dev

facebook opengraph, 사용자 정의 쿼리를 만드는 방법?

분류에서Dev

특정 월의 사용자 ID로 합계하는 SQL 쿼리를 만드는 방법

분류에서Dev

ZF2 Doctrine-쿼리 작성기를 사용하여 저장소의 사용자 지정 메서드를 가리키는 방법

분류에서Dev

q kdb의 특정 조건에서 group by를 사용하여 쿼리 최적화

분류에서Dev

외래 키를 사용하는 여러 테이블 간의 특정 쿼리

분류에서Dev

피벗 쿼리를 사용하여 사용자 지정 디스플레이를 사용하는 방법

Related 관련 기사

  1. 1

    PowerShell 빌드 단계 내에서 TFS 빌드 정의 사용자 지정 변수를 쿼리하는 방법

  2. 2

    Django의 ManyToManyField에 대한 특정 인수를 사용하여 양식에서 쿼리 사용자 지정

  3. 3

    SCons의 VariantDir 및 Repository를 사용하여 사용자 지정 생성기를 사용하여 빌드

  4. 4

    사용자 지정 빌드 변수

  5. 5

    특정 jsonfromat을 사용하여 JsonObject를 빌드하는 방법

  6. 6

    CakePHP :: 사용자 정의 SQL 쿼리를 사용하여 드롭 다운을 만드는 방법

  7. 7

    특정 Google 서비스를 쿼리하지 않고 사용자 인증

  8. 8

    릴리스 파이프 라인에서 빌드 파이프 라인의 사용자 지정 변수를 사용하는 방법

  9. 9

    htacess를 사용하여 모든 사용자 정의 페이지를 특수 페이지로 리디렉션

  10. 10

    여러 테이블을 사용하는 MySQL 사용자 지정 조인 쿼리

  11. 11

    pre_get_post를 사용하여 Wordpress 쿼리 사용자 지정

  12. 12

    사용자 별 계정 사용량 확인 방법> 특정 날짜 및 특정 쿼리를 사용한 시간

  13. 13

    Silverlight를 사용하여 C #에서 그리드의 특정 행에 색을 지정하는 방법

  14. 14

    여러 인수를 사용하여 이벤트 로그 쿼리 형식 지정

  15. 15

    Mongoose : 사용자 지정 함수를 사용하여 쿼리 / 집계의 값 변환

  16. 16

    Grunt의 특정 폴더에 대한 플래그를 사용하여 빌드

  17. 17

    정적 메서드를 사용하여 문자열의 특정 문자 검색

  18. 18

    변수를 사용하여 문자열의 특정 문자를 가리킴

  19. 19

    특정 열만 반환하는 Redmine 사용자 지정 쿼리

  20. 20

    jQuery를 사용하여 WTForm의 특정 필드 지우기

  21. 21

    WooCommerce : 특정 페이지에 대해 WordPress 사용자 정의 필드를 사용하여 장바구니에 추가 옆에 사용자 정의 버튼 추가

  22. 22

    susy를 사용하여 div 내부에 사용자 지정 그리드 배치

  23. 23

    특정 사용자의 이미지를 업로드하여 다른 사용자가 특정 이미지를 볼 수 없도록 함

  24. 24

    facebook opengraph, 사용자 정의 쿼리를 만드는 방법?

  25. 25

    특정 월의 사용자 ID로 합계하는 SQL 쿼리를 만드는 방법

  26. 26

    ZF2 Doctrine-쿼리 작성기를 사용하여 저장소의 사용자 지정 메서드를 가리키는 방법

  27. 27

    q kdb의 특정 조건에서 group by를 사용하여 쿼리 최적화

  28. 28

    외래 키를 사용하는 여러 테이블 간의 특정 쿼리

  29. 29

    피벗 쿼리를 사용하여 사용자 지정 디스플레이를 사용하는 방법

뜨겁다태그

보관