2016-06-28 2 views
0

XML 파일을 사용하여 응용 프로그램에 변수 집합을로드하는 .net 콘솔 응용 프로그램을 작성했습니다.SSIS 실행 .Net 콘솔 작업 관련 경로

테스트하는 동안 공유 드라이브에 저장되는 UNC 파일 경로를 사용하여 .xml 파일의 절대 경로를 하드 코딩했습니다. \\ sharepath \ config.xml

이제 SSIS에서 application.exe 파일을 호출하려고합니다. 응용 프로그램 내에서 하드 코드 된 경로를 계속 사용하지만이 코드를 다음과 같이 변경하면됩니다. 상대 경로 (config.xml) 설정 파일을 찾을 수 없으므로 실패합니다.

아무도 왜 이것이 작동하지 않는지 알고 있습니까? - SSIS의 작업 디렉토리에 대해 읽은 적이 있는데 어떤 이유로 ssis 패키지의 응용 프로그램 실행 태스크를 사용하여 지정된 위치와 다른 위치에서 .exe 파일이 실행되고 있는지 확실하지 않습니다.

기본적으로 응용 프로그램에 파일 경로가 하드 코딩되지 않도록하여 나중에 변경 될 파일 공유 이름을 변경할 수 있습니다.

고마워요.

+0

* 모든 * 응용 프로그램에는 작업 디렉토리를 설정해야합니다. 'C : \'에 있고'c : \ somefolder \ myapp.exe'를 실행하면 작업 디렉토리는'c : \ somefolder'가 아니라'c : \'입니다. 물론 최선의 선택은 파일의 경로를 하드 코딩하는 대신 매개 변수로 전달하는 것입니다. 어쨌든,'Execute Task' 단계에서 응용 프로그램의 Working Directory를 설정하십시오. –

+0

안녕하세요 Panagiotis, 귀하의 의견을 주셔서 감사합니다. 응용 프로그램이 상대 경로로 사용하고있는 작업 디렉토리였습니다. 우리가 config 파일을이 폴더에 넣었을 때이 파일을 읽고 예상대로 작동했습니다. - 대답은 답안 공간에있는 그대로 답을 수락합니다. – user2916488

답변

0

나는 이것도 물었습니다. 작업 디렉토리는 dtsx 파일이있는 위치가 아니라 DETEXEC.exec (또는 DTEXEC_Util.exe)이 사는 위치입니다. C : \ Program Files (x86) \ Microsoft SQL Server \ 110 \ DTS \ Binn 이 위치에 구성을 넣지 않을 것으로 의심됩니다. 가장 좋은 방법은 SSIS를 설정하는 것입니다 XML 파일의 위치로 구성한 다음 파일을로드 할 때이 파일을 사용하십시오 (많은 예제가 있습니다 ...)

+0

감사합니다. 우리는 config xml을 프로세스 실행 태스크에 정의 된 사용자 정의 작업 폴더에 저장하여 해결했습니다. 우리는 변수를 응용 프로그램에 전달하여 복잡하게 만들고 싶지 않았습니다. – user2916488