Clickonce 배포 시, 클래스 라이브러리 프로젝트에 있는 파일의 패키징 불가

아래 링크는 현재 저와 아주 유사한 상황의 질문 글입니다.

제 상황은 .NET Framework 4.8 WPF 프로젝트가 .NET Standard 2.0 Class Library 프로젝트를 참조하고 있는 상황입니다.

여기서 Class Library안에는 javascript, python, powershell, png image 등의 파일들이 존재하는데, Clickonce로 패키징 시에 위의 파일들이 포함되지 않고 있습니다.

Clickonce로 패키징을 할 때는 ChatGPT도 그렇고 MSDN도 그렇고, 패키징에 포함할 파일의 Build Action을 Content(한국어 빌드 액션 - 내용)으로 바꿔놓고, 출력 디렉토리로 복사를 새버전일때 복사하거나 항상 복사를 허용하라고 합니다. 아래는 관련내용이구요.

아무튼 그렇게 했더니 프로세스 로그에 Assembly.GetExecutingAssembly().Location을 사용해서 Clickonce가 설치된 경로에 들어가보니 해당 파일들이 없었습니다.
그래서 없는 파일을 참조했다는 에러도 당연하게 발생했습니다.

이 링크를 보면 Mage.exe 또는 MageUI.exe 를 사용해서 패키징 파일을 수정해야하는 것 같은데, 이것 밖에 방법이 없는지도 잘 모르겠고, 무엇보다도 문서상에서는 Visual Studio를 설치할 때 Mage라는 도구가 함께 설치가 된다고 하는데 설치되지 않았습니다. Visual Studio Installer에도 따로 없는 거 같습니다. 이 Mage.exe 라는 것을 찾아서 해봐야할까요?

이걸 써서 제가 원하는 목적인 Class Library의 파일이 Clickonce로 패키징을 성공하신 분이 계신가요?


당연하게도 Class Library에 있는 파일들을 WPF 프로젝트로 옮겨서 빌드액션을 내용으로 바꾸어 패키징하면 설치경로에 제가 원하는 파일들이 있습니다. 우선은 이 방법으로 그냥 하려고 하는데, 혹 다른 좋은 방법이 있으신 분들은 공유해주시면 감사드리겠습니다.

1 Like

mage.exe/mageui.exe는 Visual Studio가 아닌 Windows SDK에 포함돼 있습니다.

Windows SDK - Windows app development | Microsoft Developer

저도 예전에 mage.exe를 써 본 적이 있는데… 아마 이걸로도 안 되면 방법이 없을 것입니다. (XML을 직접 편집하는 방법도 있습니다. ^^)

.NET Framework: 132. ClickOnce 배포를 명령행 수작업 구성 (sysnet.pe.kr)

2 Likes