1

MVC3 웹 응용 프로그램에 VS2010 웹 설치 프로젝트를 사용하고 있습니다. 설치에 문제가 없습니다. 그러나 MVC3 webapplication 바이너리 및 웹 설치 프로젝트의 버전을 업그레이드 (이전 버전의 기존 설치에서)하면 대상 디렉토리의 web.config 파일이 대체되지 않습니다. 다른 모든 파일과 디렉토리는 대체되고 업데이트되지만 'web.config'파일 만 웹 설정으로 대체되지 않습니다.VS2010 웹 설치 프로젝트가 'web.config'파일을 대체하지 않습니다.

웹 응용 프로그램에서 아무것도 업데이트 할 때마다 웹 설치 프로젝트 및 MVC3 응용 프로그램의 버전이 변경됩니다.

나는 또한 파일을 "제품 코드"와 "UpgradeCode을"변화하지만 여전히 web.config 반면에 노력은

나는 웹 설치 프로젝트

  • DetectNewerInstalledVersion의 특성 다음 세트 (첫 번째 버전의) 동일합니다 - 진정한
  • Removepreviousversions - 진정한
  • RestartWWWService - 진정한

기존 web.config 파일을 수동으로 제거/삭제 한 다음 새 버전을 설치하면 새로운 업데이트 된 web.config 파일이 저장됩니다. 이 문제는 기존 web.config 파일이 대상 디렉토리에서 사용 가능한 경우에만 발생합니다.

사용자 지정 작업의 "OnBeforeInstall"을 사용하여 기존 web.config 파일을 삭제하거나 이름을 변경하여 새로운 we.config가 설치시 복사되도록 시도했습니다. 그러나 사용자 지정 작업 메서드를 실행하기 전에 모든 파일이 복사되는 것으로 나타났습니다.

이 문제를 해결하거나 내 고객에게 웹 설치 프로젝트를 제공 할 수있는 다른 방법을 제안하십시오.

미리 감사드립니다.

편집 : 웹 설치 프로젝트의 버전을 변경하면 자동으로 제품 코드가 변경되지만 upgradecode는 여전히 동일합니다.

+0

이전 web.config 파일에서 버전 등을 수동으로 변경해 보았습니까? –

+0

버전이나 코드를 변경하는 web.config 파일의 속성이 없습니다 –

답변

0

설치시 설치 관리자는 교체 할 각 파일의 버전을 확인합니다. 따라서 파일이 동일한 버전이거나 두 설치 관리자간에 파일이 변경되지 않으면 설치 관리자가이 파일을 바꾸지 않습니다. 그러나 해당 파일이 없으면 설치 프로그램이 해당 파일을 삭제합니다.

해결책 : "costfinilize"전에 파일을 삭제 해보십시오. 따라서 사용자 정의 액션을 호출하여 "costfinilize"전에 파일을 삭제 \ 제거하십시오.

Orca를 사용하여 msi의 모든 사용자 지정 동작의 실행 순서를 확인할 수 있습니다. http://msdn.microsoft.com/en-us/library/windows/desktop/aa370557(v=vs.85).aspx

+0

해당 솔루션에 대해 자세히 설명해 주시겠습니까? "costfinilize"란 무엇입니까? VS2010에서는 어디에서 설정합니까? –