2017-04-21 2 views
1

Visual Studio 2015를 사용하여 MSI를 만들고 있습니다. 특정 파일이 이미 TARGETDIR에 있는지 확인하고 검색 결과를 사용자 지정 C#의 액션. 지금까지 Launch Conditions보기에서 검색을 작성하고 그에 따라 특성을 설정했습니다. 그런 다음MSI의 실행 조건 (대상 컴퓨터 검색)에서 사용자 지정 작업으로의 값 전달

enter image description here

, 나는 사용자 정의 데이터를 매개 변수로 지정 작업에 속성 이름을 보려면 전달합니다

/CONFIG_EXISTS = "[CONFIG_EXISTS]"

을하지만 내 사용자의 값을 읽을 때 액션 코드는 그 값이 비어 있지만 적어도 문자열로는 부울을 찾을 것으로 기대합니다.

protected override void OnAfterInstall(IDictionary savedState){ 
    var existingConfig = Context.Parameters["CONFIG_EXISTS"]; // Always has "" as value 
    .... // Other code 

무엇이 여기에 있습니까? 검색 조건의 결과를 사용자 지정 액션 C# 코드에 입력하는 방법은 무엇입니까?

+0

PhilDW가 설명합니다. 나는 단순히'TARGETDIR' 또는 전체 파일 경로를 커스텀 액션에 전달하고 커스텀 액션 자체에 파일이 존재하는지 확인한다. – zett42

답변

1

TARGETDIR이 초기화되기 전에 설치 초기에 실행되므로 TARGETDIR도 설치 폴더를 제공하는 대화 상자로 변경할 수 있다는 점에 유의하십시오. 그래서 당신은 여기 등등 ProgramFilesFolder, CommonFilesFolder하고, 전체 목록과 같은 표준 Windows 설치 폴더 속성의 측면에서 검색을 다시 정의해야합니다 : 그것은 작동하지 않는 이유

https://msdn.microsoft.com/en-us/library/windows/desktop/aa370905(v=vs.85).aspx#system_folder_properties

관련 문제