2010-05-25 5 views
4

설치가 완료된 후 응용 프로그램 설치 폴더를 % PATH % 환경 변수에 포함시키는 쉬운 방법을 찾고 있습니다.설치 후 % PATH %에 응용 프로그램 폴더를 추가하는 방법 (VS 설치 프로젝트)

Visual Studio 2005/2008/2010, 설치 프로젝트.

+0

내가 볼 수있는 유일한 방법은 맞춤 클래스 라이브러리를 만들고 코드를 작성하는 것입니다.하지만 다른 방법이 있습니다. setx 명령을 사용하는 것과 같습니다. –

+0

PATH 변수에 대해 [GetEnvironmentVariable() 및 SetEnvironmentVariable() : //stackoverflow.com/questions/7121846/getenvironmentvariable-and-setenvironmentvariable-for-path-variable) – ickydime

답변

2

슬픈 감사,하지만 여전히 당신이 사용자 지정 작업에 대한 클래스를 코딩 할 필요가 있음을 잘 것 같다. 예제 구현이 사라졌습니다. 대안을 보려면 아래를 참조하십시오.

+0

고마워, 나는이 문제에 대해 비슷한 해결책을 찾아왔다. –

+0

솔루션은 제거 할 때 경로를 제거합니까? 필요한 정보가 IDictionary를 통해 제거 할 때 전달되지 않는 것 같습니다. 내 장치 테스트는 설치에서 출력물을 제거 할 때 작동합니다. 하지만 실제 설치 프로그램을 사용하면 실패합니다. – Christian

+0

아니요, 올바른 설치 제거 부분을 아직 구현하지 않았습니다. –

1

이것은 오래된 질문이지만 여전히 Google 검색 결과 순위가 높습니다.

허용 된 답변의 링크가 끊어졌습니다. GetEnvironmentVariable() and SetEnvironmentVariable() for PATH Variable

내가 중복으로하지만 여기에 닫혀 나를 위해 일한 다음과 같은 코드가 될 때까지이 질문을 플래그 :

그러나, 당신은 여전히 ​​여기에 정확한 답변을 가지고 (나중에 질문) 중복 질문을 찾을 수 있습니다 :

string keyName = @"SYSTEM\CurrentControlSet\Control\Session Manager\Environment"; 
//get non-expanded PATH environment variable    
string oldPath = (string)Registry.LocalMachine.CreateSubKey(keyName).GetValue("Path", "", RegistryValueOptions.DoNotExpandEnvironmentNames); 
//set the path as an an expandable string 
Registry.LocalMachine.CreateSubKey(keyName).SetValue("Path", oldPath + ";%MYDIR%", RegistryValueKind.ExpandString); 

나는 % MYDIR %을 응용 프로그램 경로로 바꿨습니다.

또한이 코드를 저장하고 코드를 커밋 (commit) 함수 내에 배치하기 위해 사용자 지정 작업을 수행해야합니다.

0

주된 문제는 Visual Studio 설치가 PATH 및 기타 환경 변수로이 모든 작업을 수행 할 수있는 Windows Installer 환경 테이블을 지원하지 않는다는 것입니다. MSI의 환경 테이블은 복잡하지 않으므로 MSI 편집기 (예 : Orca)를 사용하여이를 사용하는 방법을 배우고 스크립트를 사용하여 게시 빌드 단계 (예 : WiRunSql.vbs)의 MSI 업데이트를 자동화하는 것이 좋습니다. Windows SDK)를 사용하여 업데이트를 자동화합니다.

또는 WiX에 대해 충분히 배우고 설치에 필요한 환경 변수가 포함 된 병합 모듈을 만들고 Visual Studio 설치 프로그램에 추가하십시오.

이러한 선택 사항 중 하나는 Everyone 설치에서 사용자 변수에 대해 작업하지 않고 환경 변수를 파괴하지 않도록주의해야하는 런타임 코드를 작성하는 것보다 낫습니다.