2014-12-16 4 views
1

MSI를 만들면서 새로운 것을 배우고 있습니다. 여기 내 문제가 :Visual Studio 설치 프로그램의 경로를 프로그래밍 방식으로 설정하십시오.

나는 간단한 프로젝트와 간단한 테스트 솔루션을 가지고있다 : 간단한 WPF 애플리케이션과 클래스 라이브러리. WPF는 클래스 라이브러리를 사용하여 임의의 텍스트를 표시합니다. Visual Studio 2013에서 설치 프로젝트를 만들고 응용 프로그램을 설치할 MSI를 만들었습니다.

"BeforeInstall"및 "AfterInstall"과 같은 특정 이벤트를 구독 할 수 있도록 "Installer class".cs 파일을 프로젝트 중 하나에 추가 할 수 있음을 알게되었습니다. 이것을 사용하여 사용자가 선택한 설치 경로와 같은 일부 값을 레지스트리에 쓸 수 있습니다.

모두 좋았지 만 이제는 이런 일이 생깁니다. 다른 텍스트를 반환하도록 클래스 라이브러리를 업데이트하기로 결정했습니다. wpf가 아닌 클래스 라이브러리 (dll) 만 업데이트 할 응용 프로그램에 대한 패치를 만들어야합니다. 앱 자체

이 작업을 수행하기 위해 다른 설정 프로젝트를 만들어 클래스 라이브러리 출력을 추가했습니다. 아마도 내가 레지스트리에 이전 설치에서 설치 경로가 다음과 같습니다 :

내가 레지스트리에있는 경로에 설치하도록 패치 설치를 알려주거나 전혀 설치하지 마십시오. 레지스트리가 존재하지 않습니까? 클래스 라이브러리 프로젝트에서 설치 프로그램 클래스 .cs를 만들려고했는데, 레지스터에서 경로를 가져올 코드를 작성할 수 있지만 설정할 위치를 찾을 수 없습니다.

나는 stackoverflow 게시물을 꽤 많이 읽었는데, 그게 내가 지금까지 가지고있는 방법이지만, 지금은 정말로 붙어있다.

감사합니다.

+0

나는 레지스트리를 찾기 위해 대상 컴퓨터를 검색하기위한 시작 조건을 추가 할 수 있다는 것을 알았지 만 작동시키지 못한다. – Darksody

+0

또한이 링크를 찾았으므로 말한 것처럼 해 보았습니다. 그러나 구체적이지 않으며 이해할 수 없습니다. 또한이 게시물은 2007 년입니다. http://blogs.msdn.com/b/astebner/archive/2005/09/20/472125.aspx – Darksody

+0

추가 조사를 마친 후 필자는 필요한 링크를 발견했습니다. 그것은 작동하지 않는 것 같습니다. "네트워크 위치 \ MyApp에 액세스 할 수 없습니다"라고 표시됩니다. 나는 여기에서 지시를 따랐다 : http://support.microsoft.com/kb/827026 – Darksody

답변

0

이 작업을 수행 할 필요가 없습니다. 설치 프로젝트의 레지스트리보기에서 사용자가 입력 한 설치 디렉토리를 저장할 항목을 작성하고 대소 문자를 구분하는 [TARGETDIR] 값을 지정하십시오.

VS 설정 프로젝트로 패치를 만들 수 없으며 사용자 지정 작업 코드 만 변경할 수있는 도구로 실제 패치를 만들 수 없습니다. 오래된하지만 여전히 정확

https://www.simple-talk.com/dotnet/visual-studio/updates-to-setup-projects/

을 : 여기에 설명 된대로 업그레이드를 할. 새로운 점은 RemovePreviousVersions 업그레이드에서 업데이트하려는 파일의 파일 버전을 증가시켜야한다는 것입니다.

"다른 텍스트 반환"이 정확히 무엇을 의미하는지 알지 못해서 나는 더 이상 도울 수 없습니다.