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

읽어주셔서 감사합니다.

좋아요 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