Visual Studio Installer Projects을 통한 파일 경로 지정에 대한 문의드립니다.

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를 하도록 하고 싶은데, 이 경우 상위 코드에서 파일 경로를 어떻게 지정해줘야 할까요?
20220425_211826

읽어주셔서 감사합니다.

1개의 좋아요

우선 관련 링크로 시도해보고 다시 알려드리겠습니다.

1개의 좋아요

아래와 같이 수정하여 정상 동작 확인하였습니다.

public BaseFiltering SetupFiltering()
{
  // release mode
  return JsonConvert.DeserializeObject<BaseFiltering>(File.ReadAllText(@"C:\Program Files (x86)\[Manufacturer]\[ProductName]\Assets\Filtering.json"));
        }
2개의 좋아요

되도록이면 절대 경로를 사용하지 않아야 하는것은 고려하셔야 합니다.

3개의 좋아요

실행파일의 위치를 얻는 방법을 검색해 보세요.
현재 방법으로는 이 후 본인 또는 누군가가 64비트로 바꾸거나 하면 수정해야 하는데.
어디를 수정해야 하는지 해맬 수 있습니다.

3개의 좋아요

@dimohy @SeungJun_Lee 의견 감사합니다. 현재 제가 진행중인 프로젝트는 WPF 학습을 위해 여러가지 기능을 점검차 진행하고 있습니다. 말씀하신대로 실 구현에서는 JSON을 WEB API 혹은 웹서버에서 업로드 된 경로를 참조하여 진행할 예정입니다. 이 밖에 좋은 의견이 있으시면 조언을 부탁드립니다.

1개의 좋아요