2014-01-05 5 views
3

회사 네트워크 내에서 실행해야하는 응용 프로그램이 .NET 4WPF입니다.
응용 프로그램은 로컬 파일 (app.config 파일이 있지만 파일 수는 connection strings)을 사용하지 않고 데이터 저장을 위해 SQL server 데이터베이스를 사용합니다. 공유 네트워크 드라이브에 응용 프로그램 파일을 저장하고 각 사용자의 실행 파일에 대한 바로 가기를 만드는 단점은 무엇입니까?
나는 다음 링크에서 주제에 일부 데이터를 찾았지만 명확한 답변을 얻을 수 없었다 :이 방법을 사용하는 경우
Run a .NET program from a mapped drive or shared folder - Pros/Cons
Run a .NET program from a mapped drive or shared folder
http://support.microsoft.com/kb/832742
또한 물건을 작동하는 방법을 알고 좋은 것을 , 응용 프로그램 파일이 로컬 사용자에게 복사되었거나 다른 것이 발생합니까?네트워크 드라이브에 응용 프로그램 배포

답변

1

내 질문에 왜 당신이 원하는 것입니까? 한 번 클릭하여 네트워크 공유에 .NET 응용 프로그램을 게시하지 않는 이유는 무엇입니까?

네트워크 공유에서 응용 프로그램을 실행하면 프로그램 복사본이 클라이언트 컴퓨터의 메모리로로드되고 지원 파일 요청이 네트워크를 가로 질러 메모리로로드됩니다. 또한 필수 구성 요소를 확인하고 일부 오류가 발생할 수 있습니다.

게시 공유 마법사를 완료하면 네트워크 공유에 게시 할 때 브라우저가 네트워크 공유에있는 웹 페이지를 엽니 다. 이 URL을 공유하면 사용자가 자신의 컴퓨터에 프로그램을 '설치할'수 있습니다. 이 방법에 대한 가장 중요한 부분은 업데이트가 자동으로 수행되므로 업데이트를 게시 할 때 사용자 워크 플로가 중단되는 것에 대해 걱정할 필요가 없습니다.

ClickOnce 응용 프로그램에는 관리자 권한이 필요하지 않으며 사용자를위한 자체 바로 가기가 설치됩니다. 필자는이 중 몇 가지를 구축하고 배포했으며 대부분의 사용자는 전자 메일의 링크를 통해 액세스 할 수있는 설치 프로세스로 충분히 편안합니다.

당신은 또한 당신만큼 당신이 확신 사용자가 사전 REQS가 설치되어있는 한, 배포되면 .application 파일에 대한 바로 가기를 배포 할 수 있습니다

편집 할 수 있습니다. 응용 프로그램이 설치되었거나 설치 및 실행되면 응용 프로그램이 시작됩니다.

+0

감사합니다. 'ClickOnce' 옵션을 확인하고 있습니다. – Yoav

1

저는 내부적으로 실행하는 응용 프로그램으로이 작업을 수행했습니다.

설정에 따라 .NET 실행 파일이 보안 상 위험 할 수 있으므로 네트워크 드라이브에서 어셈블리를로드하거나 실행하는 것을 단순히 거부 할 수 있습니다. 따라서 DLL을 사용할 때 프로그램이 실행되지 않거나 예외가 발생할 수 있습니다.

네트워크의 실행 파일에 대한 바로 가기를 갖는 또 다른 단점은 업데이트를 배포 할 때입니다. 이러한 파일은 잠길 가능성이 높기 때문에 모든 컴퓨터에 가서 소프트웨어가 종료되었는지 확인하거나 서버의 사용자 잠금을 제거해야 고통 스럽습니다. 나는 프로그램을 처음 배포 한 후 버그를 발견하고 바로이 문제를 발견했습니다. 그것을 피하십시오.

네트워크의 잘 알려진 위치에서 프로그램을 실행하는 데 필요한 모든 파일이 있습니다 (구성 가능). 새로운 사용자가 응용 프로그램을 필요로 할 때 나는 모든 것을 컴퓨터의 어떤 곳으로 복사하고 바탕 화면 (또는 시작 메뉴, 시작 폴더 일 수도 있음)에서 바로 가기를 사용하기 만하면됩니다. 그런 다음 프로그램은 자동으로 해당 디렉토리의 일부 메타 데이터 (버전 정보)를 수시로 확인하고 최신 버전 인 경우 자동으로 업데이트합니다.

섀도 복사본을 수행하고 다시 부팅하지 않도록 응용 프로그램 실행 파일과 함께 업데이트하기 위해 별도의 실행 파일이 필요합니다. 내 기본 사항은 다음과 같습니다.

  1. 응용 프로그램은 네트워크 드라이브에 최신 버전이 있는지 여부를 확인합니다.
  2. 그렇다면 updater 실행 파일을 업데이트 한 다음 응용 프로그램의 프로세스 ID를 명령 줄 매개 변수로 사용하여 업데이터를 시작한 다음 자체적으로 종료합니다.
  3. 업데이터는 진행하기 전에 죽기 위해 전달 된 프로세스를 기다립니다 (응용 프로그램 실행 파일이 잠겨 있지 않음).
  4. 업데이터는 응용 프로그램 파일을 업데이트합니다.
  5. 그러면 업데이터가 응용 프로그램을 다시 시작합니다.

아직이 스키마에 문제가 없었습니다.

관련 문제