2010-06-17 2 views
0

.Net Windows 응용 프로그램을 Windows 7로 마이그레이션합니다.이 응용 프로그램은 여러 언어로 사용할 수 있지만 기본적으로 영어 만 설치됩니다. 사용자가 추가 언어를 다운로드 할 수있는 메뉴 항목이 있습니다.
이 응용 프로그램은 .Net 위성 자원 폴더 구성을 사용합니다 : http://msdn.microsoft.com/en-us/library/sb6a8618%28v=VS.80%29.aspx.
Windows 7의 문제는 사용자가 관리자가 아니며 응용 프로그램이 설치된 "program files"폴더에 대한 쓰기 권한이 없다는 것입니다. 즉, 사용자가 새 언어 리소스 파일을 다운로드하려고하면 오류가 발생합니다.
.Net은 다른 폴더 (예 : 사용자의 홈 디렉토리에있는 리소스 파일)에서 리소스 파일을 찾도록 지시 할 수 있습니까? .NET 전역 어셈블리 캐시에 리소스를 추가 할 수 있지만 관리자 권한이 필요하다는 것도 알고 있습니다..Net Windows 응용 프로그램에 대한 i18n 리소스 경로 변경

편집 : 나는 <가 > 구성 매개 변수 (http://msdn.microsoft.com/en-us/library/823z9h8w.aspx)를 프로빙 알고 있어요,하지만이 응용 프로그램의 기본 경로의 하위 디렉토리를 지정하는 데에만 사용할 수 있습니다. 응용 프로그램의 집 밖에있는 폴더로 강제로 옮길 수 있습니까?

편집 : 내가 아마 appropiate 자원을 찾기 위해 AppDomain.AssemblyResolve 이벤트를 사용할 수 있다고 생각하지만, 그것은 4 .NET으로 이전 리소스 어셈블리에 대한 호출되지 않습니다와 나는 사용자가 업데이트를 할 수 없습니다 그 버전에 아직.

감사
길레

답변

0

마지막으로 응용 프로그램 폴더 아래의 하위 디렉터리 (사용자)에서 사용자 폴더의 디렉터리로 연결 폴더 링크를 만드는 작업을 마쳤습니다. 그럼 난 assemblyBinding 태그 아래의 app.config에 다음 줄을 추가 :

<probing privatePath=".;user" /> 

응용 프로그램은 사용자의 폴더에있는 리소스 파일을 작성하고 올바른 경로에있는 것처럼 그들은 응용 프로그램에서 액세스 할 수 있습니다.
가장 세련된 솔루션이 아니라 작동 원리입니다.

0

VB.Net는합니다 (CurrentUserApplicationData 부재를 통해) 현재 사용자 응용 데이터 디렉토리로의 액세스 디렉토리를 사용할 수 SpecialDirectories 클래스를 갖는다.

관리자 권한없이이 디렉토리에 쓸 수 있습니다.하지만 응용 프로그램에 대해 고유 한 디렉토리 구조를 만들어야합니다.

+0

예, 사용자 디렉토리에 쓰는 데 문제가 없습니다. 내가 찾고있는 것은 .Net이 다른 언어 리소스 파일을 탐색하는지 제어 할 수있는 방법입니다. –

+0

@Guillermo - 죄송합니다. 응용 프로그램 경로 또는 gac을 피할 수있는 방법을 모르겠습니다. ( – Oded

관련 문제