2008-11-11 5 views
1

설치 프로그램과 함께 번들로 제공되는 일부 디렉터리가 있는데 사용자 지정 작업 내에서이 디렉터리에 액세스해야합니다. 나는 약간의 연구를했으며 SourceDir이 현재 실행중인 dir 위치를 얻는 데 사용될 수 있음을 보았습니다. 그러나이 속성을 얻는 방법에 대한 예제를 찾을 수 없습니까? 현재 디렉토리를 얻는 다른 방법은 없을까요?C# 사용자 지정 작업에서 SourceDir 속성 가져 오기

도움이되지 않는 Microsoft 사이트 이외의 다른 사람에게 조언하거나 알려줄 수 있습니까?

+0

설치 프로그램, WIX, NULLSoft, InstallShield 등을 빌드하는 데 사용하고있는 것이 무엇인지 언급하는 것이 도움이 될 것입니다. – CheGueVerra

+0

사용자 지정 작업이 지연되거나 즉시 발생하는 경우 언급하는 것이 도움이됩니다. – LanceSc

답변

1

사용자 지정 동작에 대해 vbscript를 사용한다고 가정합니다. 그렇다면 Session 객체를 통해 속성에 액세스 할 수 있습니다. 아래를 참조

strSourceDir = Session.Property("SourceDir") 

이 SOURCEDIR 속성이 specific times during the installation에서만 사용할 수 있음을 유의하십시오.

C 번호
1

, 당신은 같은 것을 할 수 있다는 것을 확인할 수있는 것들 : documentation on MSDN 불행히도이 분명하기에 부족

[CustomAction] 
public static ActionResult MyCustomAction(Session session) 
{ 
    string sourceDir = session["SourceDir"]; 
    string path = Path.Combine(sourceDir, "yourfilename.txt"); 
    ... 

.

w4g3n3r은 답변에서 언급했듯이 SourceDir은 특정 시간에만 사용할 수 있습니다. 간단히 말해 뒤에 사용자 지정 작업이 으로 지정되어 있는지 확인해야하며 ResolveSource 액션을 호출해야합니다.이 작업은 CostInitialize가 실행 된 후에 만 ​​호출 할 수 있습니다.

일단 SourceDir이 설정되면 나머지 설치 프로세스에서 사용할 수 있어야합니다.

0

InstallShield를 사용하고 있습니까? 여기의 InstallScript CA에 대한 예는 다음과 같습니다 당신은 또한 설정 속성 "유형 51"값 SOURCEDIR로 기능 설정 CustomActionData에 사용자 지정 작업을 사용

MsiGetProperty(hMSI, "CustomActionData", strDirectory, numBuffer); 

을 ....

관련 문제