문제

C # .NET 응용 프로그램에서 isolatedstorate 기술을 사용하고 있습니다.

내 응용 프로그램은 격리 된 저장소의 mydata.dat이라는 파일에서 닫기에 데이터를 저장합니다.

내 응용 프로그램을 열면 해당 데이터를 다시로드하고 화면에 인쇄하십시오.

d : \ myapp.exe에서 d : \ apps \ myapp.exe로 응용 프로그램을 다른 디렉토리로 이동 한 다음 새 디렉터리에서 응용 프로그램을 실행하면 mydata.dat 파일을로드하는 실패합니다 (FilenotFoundException) 다른 곳에서 다른 mydata.dat 파일을 찾고 있기 때문에 ..

누군가가 내 고립 된 파일을 저장할 수있는 방법을 알고 있습니까? - mydata.dat 파일이 내 app.exe를 열 때 아무리 찾을 수없는 곳에서 찾을 수 있습니까?

도움이 되었습니까?

해결책

두 경우 모두 재개발 된 isolatedStarage 의 디렉토리를 확인하십시오.기계가 동일하더라도 예상 저장 경로가 다른 위치에서 동일한 응용 프로그램에 대해 다른 것으로 나타날 수 있습니다.

격리 저장소 경로 가져 오기

다른 팁

나는 귀하의 어셈블리 정보가 어떤 식 으로든 변화했다고 생각합니다.예를 들어, EXE를 이동하기 전에 버전 1.0.0.0이었고 다른 디렉토리에서는 다른 버전 1.0.0.1을 놓습니다.이 경우이 두 버전의 두 가지 버전에 대한 스토리지 위치 (다른 답변 참조)에 두 개의 개별 디렉토리가 있어야합니다.

또는 VS에서 디버그 모드로 앱을 처음 실행 한 다음 EXE를 이동하여 직접 실행할 수 있습니다.이 경우 yourAppName yourAppName.vschost 과 같은 두 개의 다른 디렉토리가 있어야합니다.

어쨌든 더 많은 정보를 얻으려면 고립 된 저장소 위치를 검사하십시오.

Assmbly Identity가 변경되지 않는 한 IsolatedStorageFile.GetUserStoreForAssembly를 사용하여 사용할 수있는 상점을 얻을 수 있습니다.따라서 EXE 파일의 위치와는 독립적입니다. MSDN 문서

나는 그것을 자신을 시도했고, 나는 다른 폴더에서 응용 프로그램을 옮길 때 isolatedstoragefile 인스턴스에 대한 조립자가 변경되었음을 알아 챘다.

이를 방지하려면 어셈블리에 서명해야하며 그런 다음 응용 프로그램을 다른 폴더로 이동하고 격리 된 Storege 파일에 동일한 위치를 계속 사용할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top