최근에 .NET 위치에 대한 인터뷰를했습니다. 질문에서 나는 한 가지 질문에 답하는 데 정말로 어려움을 겪고있었습니다. 나는 누군가가 이것에 관해 나를 도울 수 있기를 바란다.응용 프로그램을 다시 시작하지 않고 업데이트 적용
시나리오 (질문) : 응용 프로그램 (winform/wpf UI 응용 프로그램 일 수 있음)의 첫 번째 릴리스가 이미 클라이언트에 전달되어 응용 프로그램을 사용하기 시작했습니다. 그러나 불행히도 현재 QA 팀은 현재 릴리스에서 심각한 문제를 발견했습니다. 이제 문제는 응용 프로그램을 다시 시작하지 않고 패치 (수정)를 보내고 적용 할 수 있어야한다는 것입니다. 응용 프로그램은 패치를 적용하기 위해 다시 시작할 수없는 실시간 응용 프로그램이라고 가정합니다.
필자는 개인적으로 패치를 적용하는 동안 실행중인 응용 프로그램에 영향을주지 않는 설득력있는 대답을하는 데 어려움을 겪고있었습니다.
답 :
감사합니다. 나는이 문제에 대한 해결책을 얻을 수 있었다. 면접관이 질문 한 것인지 확실하지 않습니다. 그럼에도 불구하고 나는 거의 내가 원하는 것을 수행하는 마이크로 소프트의 ClickOnce에 대해 읽었을 때 기뻤다.
수정 프로그램의 어떤 부분이 적용됩니까? UI 만? MEF 같은 것을 사용하여 업데이트 된 코드를 언로드하고 다시로드 할 수 있다고 생각합니다. – eandersson
이 질문은 닫기를 강제하지 않고 업데이트가 수행되도록 (즉, 파일을 덮어 씀) 해석 될 수 있지만 응용 프로그램은 선택적으로 닫은 후 다시 열 때까지 변경 내용을 반영 할 필요가 없으므로 대부분의 경우 적용보다 훨씬 쉽습니다. 실행중인 프로그램을 다시 실행하지 않고 바로 볼 수있는 실행중인 프로그램의 경로. –
@eandersson : 위치가 명확하지 않았습니다. 그럼에도 불구하고 이미 프로세스 가상 공간에있는 DLL에서 UI 픽스 나 수정을하면 어떻게 접근 할 것인가? – sophieJ