2009-03-27 2 views
1

setup/msi 설치로 배포 된 winforms 응용 프로그램을 작성했습니다. ClickOnce 배포를 사용하지 않는 주된 이유는 다음과 같습니다.NET 솔루션 설치 업데이트를 고려할 때의 조언

  1. 는 "모든 사용자"순간

위해 설치 할 수 있어야 응용 프로그램의 디렉토리에 영구 데이터 스토리지를 필요, 응용 프로그램은 "하나의 .exe로 모두 규칙을 지정합니다"를 사용합니다. 기본적으로 설치 후 "program files"디렉토리에는 .exe, .ico 및 .config 파일이 있습니다. http://msdn.microsoft.com/en-us/library/aa367564.aspx

내가 단일 .EXE를 가진 것이 반드시 최선의 방법이 아니라는 인상을 :

나는 내가 업데이트 메커니즘을 가질 수 있도록 MSDN에이 충고/튜토리얼을 따라하기 위해 노력하고있어. 나는 .dll 라이브러리를 만들 때 프로젝트 내에서 .cs 파일에 내 응용 프로그램 클래스를 두는 것과 관련하여 "경험 법칙"이 있는지 궁금합니다.

.exe가 아닌 일부 .dll 파일을 쉽게 대체 할 수 있습니까?

+0

설치 패키지는 어떻게 작성하고 있습니까? –

+0

VS2005와 함께 제공되는 기본 제공 배포 프로젝트를 사용하고 있습니다. .net의 일부가 아닌 외부 .dll 자체로 내 보냅니다. – JayTee

답변

2

, 내가 재 작성, 그레이트 화이트 북한,에 의해 주어진 대답에 동의는 다음과 같습니다

  1. 별도의 프로젝트에 상당한 크기/기능의 응용 프로그램을 깰 이유가있다/구성 요소.
  2. .NET 응용 프로그램은 단순히 어셈블리를 응용 프로그램의 디렉토리에 복사하여 설치하거나 업데이트 할 수 있습니다 (어셈블리가 서로 호환되는 경우).

Windows Installer 설치 패키지 (즉, VS 배포 프로젝트가 생성하는 것)와 소위 "xcopy 배포"(예 : 어셈블리를 복사 할 때 어셈블리를 복사하지 않아도됩니다. 가야 해). Windows Installer 패키지에 의해 설치된 파일을 "xcopy"업데이트하면 Windows Installer가 "수정"하려고합니다.

변경된 파일 만 포함/업데이트하는 Windows Installer "패치"를 만들 수는 있지만 그 작업을 시도 할 좋은 이유는 없었습니다. 어쨌든 VS 배포 프로젝트의 기능을 넘어서는 것은 확실합니다.

0

일반적으로 "경험 법칙"은 솔루션을 기능을 기반으로하는 프로젝트로 분해하는 것입니다. 이것은 다른 것들과의 테스트에 유용합니다.

업데이트 측면에서 보면 this article on MSDN의 "Application-Private Assemblies"섹션에서 응용 프로그램의 새 dll을 해당 폴더에 놓을 수 있으며 모든 것을 "업데이트"할 수 있습니다. 일반적으로

관련 문제