iPong
4월 26, 2022, 4:21오전
1
Debug모드에서 정상 동작한 프로젝트를 Visual Studio Installer Projects 로 Installation file을 생성하였는데, 일부 제가 작성한 코드에서 문제가 발생하였습니다.
보시는 것처럼 현재 일부 코드에서 상대경로 에 있는 파일을 read하여 가져오는 방식이지만 프로젝트가 release가 됨에 따라 그 경로를 못 찾아서 발생한 부분입니다.
public BaseFiltering SetupFiltering()
{
return JsonConvert.DeserializeObject<BaseFiltering>(File.ReadAllText("../../ViewModels/Assets/Filtering.json"));
}
아래와 같이 Application Folder\Assets
경로에 해당 파일을 옮겨두고, Release가 되면 이곳을 참조하여 Read를 하도록 하고 싶은데, 이 경우 상위 코드에서 파일 경로를 어떻게 지정해줘야 할까요?
읽어주셔서 감사합니다.
1개의 좋아요
iPong
4월 26, 2022, 4:24오전
2
우선 관련 링크 로 시도해보고 다시 알려드리겠습니다.
1개의 좋아요
iPong
4월 26, 2022, 4:38오전
3
아래와 같이 수정하여 정상 동작 확인하였습니다.
public BaseFiltering SetupFiltering()
{
// release mode
return JsonConvert.DeserializeObject<BaseFiltering>(File.ReadAllText(@"C:\Program Files (x86)\[Manufacturer]\[ProductName]\Assets\Filtering.json"));
}
2개의 좋아요
되도록이면 절대 경로를 사용하지 않아야 하는것은 고려하셔야 합니다.
3개의 좋아요
실행파일의 위치를 얻는 방법을 검색해 보세요.
현재 방법으로는 이 후 본인 또는 누군가가 64비트로 바꾸거나 하면 수정해야 하는데.
어디를 수정해야 하는지 해맬 수 있습니다.
3개의 좋아요
iPong
4월 26, 2022, 3:42오후
6
@dimohy @SeungJun_Lee 의견 감사합니다. 현재 제가 진행중인 프로젝트는 WPF 학습을 위해 여러가지 기능을 점검차 진행하고 있습니다. 말씀하신대로 실 구현에서는 JSON을 WEB API 혹은 웹서버에서 업로드 된 경로를 참조하여 진행할 예정입니다. 이 밖에 좋은 의견이 있으시면 조언을 부탁드립니다.
1개의 좋아요