2012-02-23 2 views
0

우리는 C#으로 개발 한 아주 오래된 Windows 프로그램을 가지고 있으며 모든 새로운 게시와 함께 고객은 프로그램의 새 버전을 다시 설치해야합니다. 가능하다면 나는 궁금해. 프로그램이 실행을 시작하면Assembly.Load() 또는 아니요?

  1. 내가 TXT 파일
  2. 에 모든 클래스를 저장합니다, 내 디스패처 클래스는 관련 txt 파일을 검색하고 그것을 즉시 Assembly.Load와 양식/클래스를 생성합니다.
  3. X 폼의 내용을 변경하면 X 폼과 관련된 텍스트 파일을 수정하고 덮어 씁니다.

이것이 가능합니까?

+1

는 [AssemblyVersion] 그래서 그냥 파일 복사가 충분 증가하지 않음으로써 버그 수정을 제공 ClickOnce 배포, 또는 (폐지) 같은 일부 자동 업데이트 프로세스를 사용하는 것이 좋습니다. –

답변

2

왜 txt 파일을 소스 코드 형태로 사용합니까? Assembly.Load()는 컴파일러가 아닙니다.

이것은 자바가 아닙니다. 클래스를 * .class 파일 (2 진 파일)로 컴파일하지 마십시오. C# 클래스의 집계는 dll (이진 파일)로 컴파일됩니다. Assembly.Load()는 .NET DLL 만로드합니다.

따라서 Assembly.Load()를 텍스트 파일과 함께 직접 사용할 수 없습니다.

+0

다른 방법이 있습니까? –

0

전체적으로 제거 할 필요가 없습니다. 앱의 버전을 업데이트하려면 업데이트 된 EXE 및 DLL 파일을 디렉토리에 덤프하고 직접 실행할 수 있습니다.

응용 프로그램을 특정 양식이나 구성 요소를 담당하는 많은 DLL로 분할하려고 할 수 있지만 대부분의 경우 호환성 문제를 방지하기 위해 전체 응용 프로그램을 한꺼번에 업데이트하는 것이 좋습니다.

당신이 정말로 원활한 업데이트를하려면

Updater Application Block.

관련 문제