나는 결국 내가 좋아하지 않는 해결 방법을 발견했지만 계속 진행해야한다. 이 문제를 피하기 위해 필요한 라이브러리를 프로젝트의 루트에 링크로 추가하고 BuildAction
을 Content
및 CopyToOutputDirectory
에서 Copy if newer
으로 설정했습니다.
좀 더 이해하기 쉽도록 예제로 설명하겠다고 생각했습니다.
프로젝트 경로 : C : \ 일 \ MyApp를하고 다음과 같은 하위 폴더가 포함
D : \ 일 \ MyApp를 \ MyApp.csproj D : \ 일 \ MyApp를 \ MyApp.xaml .. D : \ Work \ MyApp \ Bin \ Debug D : \ Work \ MyApp \ Bin \ Debug D : \ Work \ MyApp \ Bin \ Release dll D : \ Work \ MyApp \ Depedencies \ LibB.dll 등
이 라이브러리는 타사 도구이며 실제로 자신의 폴더에 포함되어 있습니다.
D : \ 도구 \ MyThirdPartyLib \ Distributation \ LibA.dll D : \ 도구 \ MyThirdPartyLib \ Distributation \ LibB.dll
D의 라이브러리를 가짐으로써 : \ 일 \ MyApp를 \ 종속성으로 작동하지 않았다
C : ClickOnce
이있는 응용 프로그램을 설치합니다 사용자 \의 AppData \ 로컬 \ APPS \ 2.0 ... \ \\ MyApp.exe의
하고있는 종속성 하위 폴더에있는 파일을 설치 :
C : \ Users \ AppData \ Local \ Apps \ 2.0 ... \ Dependencies \ LibA.dll C : \ Users \ AppData \ Local \ Apps \ 2.0 ... \ Dependencies \ LibB.dll
이로 인해 내 앱이 작동하지 않습니다.
그것을 해결하기 위해, 나는 "링크 된 파일"로 내 프로젝트의 루트에 LibA.dll 및 LibB.dll를 추가 결국 설정하고 자신의
BuildAction
및
CopyToOutputDirectory
하지만 D
에 링크 된 파일을 가리키는하여 : \ Work \ MyApp \ Depedencies \ LibA입니다.DLL D : \ 일 \ MyApp를 \ Depedencies \ LibB.dll
대신을 가리키는 :
D : \ 도구 \ MyThirdPartyLib \ Distributation \ LibA.dll D : \ 도구 \ MyThirdPartyLib \ Distributation \ LibB .dll
그리고이 트릭을 수행 한 것 같습니다.
MyApp Solution
- MyApp Project
- MyApp.csproj
- MyApp.xaml
- ...
- LibA.dll
- LibB.dll
- ...
하지만 지금은해야 할 것 : 그것에 대해 내 유일한 쇠고기는 지금 내가 좋아하지 않는 비주얼 스튜디오에서 내 프로젝트의 루트에 나와 10 개 이상한 파일을 가지고 있다는 것입니다.
다른 사람들에게 도움이되기를 바랍니다.
프로젝트 -> 특성 -> 빌드 -> 출력 -> 출력 경로를 클릭하고 디버그 또는 다른 상대 경로 대신 ../Debug를 추가하십시오. – sTrenat
문제는 빌드 위치가 아닌 ClickOnce 출력 응용 프로그램의 루트 폴더에 특정 파일을 복사하려면 하위 폴더에 포함 된 파일을 동일한 하위 폴더에 설치합니다. – Thierry