2009-08-21 2 views
2

사용자는 ClickOnce 응용 프로그램을 설치할 수 없습니다. 오류 : "NLog.dll 파일이 유효한 휴대용 실행 파일 (PE) 파일이 아닙니다." 내 컴퓨터에서 잘 작동하지만 nLog가 설치되어 있습니다. 클라이언트 컴퓨터에서는 불가능합니다. 이 아이디어를 어떻게 활용할 수 있습니까?ClickOnce 응용 프로그램으로 NLog 배포

답변

2

NLog 어셈블리가 GAC에 배포 된 경우 ClickOnce 설치에 NLog 어셈블리를 포함 할 수 없습니다. 로컬 DLL로 배포하십시오. 그럴 수 없으면 NLog를 배포하기 위해 별도의 설치 (또는 MSI)가 필요합니다.

+0

Henk의 대답에 따르면 nlog 설치에는 사용할 수있는 어딘가에 GACed가 아닌 dll이 있어야합니다. 그렇지 않으면 설치 프로그램이 아닌 zip 파일에서 다운로드 할 수 있어야합니다. –

+1

우리는 여기서 너무 많은 문제없이 NLog를 사용하지만 우리의 dll은 응용 프로그램과 함께 로컬로 배포됩니다. – Newtopian

3

빌드 옵션을 확인하고 NLog.dll이 "응용 프로그램 파일"에 포함되어 있는지 확인하여 "다운로드 그룹"에 있어야합니다/필요합니다.

+0

이것은 NLog가 포함 할 수있는 다른 dll이어야하기 때문에 문제가 될 가능성이 큽니다. Log4Net은 이러한 방식으로 작동합니다. –

+0

감사하지만 dll이 다운로드되지만 오류가 발생합니다. – Brian

0

dll을 프로젝트에 추가하고 BuildAction = None을 설정하고 "출력 디렉토리에 복사"를 "복사하지 마십시오"로 설정하십시오.

프로젝트에서 NLog에 대한 참조를 삭제하십시오. 참조를 다시 추가하고 방금 프로젝트에 추가 한 dll을 가리 킵니다. 참조 속성에서 "로컬 복사"를 "true"로 설정하십시오.

이제 응용 프로그램을 실행하면 로컬 버전을 가리키고 응용 프로그램을 배포하면 로컬 버전을 배포하고이를 가리 킵니다.

많은 제 3 자 DLL에서 작동하지만 전부는 아닙니다. 가장 좋은 방법은 시도하는 것입니다.

+0

감사하지만 dll이 다운로드되지만 오류가 발생합니다. – Brian

+0

프로젝트에서 어떻게 참조됩니까? 나는 내 기억을 준설해야 할 것이다. 나는 이식성있는 실행 오류에 대해 뭔가 기억하고있다. 내가 말한 방식대로 프로젝트를 변경 했는가? – RobinDotNet

+0

다음은 MSDN 포럼의 게시물입니다.이 도움말이 전혀 도움이되는지 확인하십시오. http://social.msdn.microsoft.com/forums/en-US/winformssetup/thread/dc47dac1-6eb2-4533-a119-c1d87a36c4a5/ – RobinDotNet

7

모든 NLog 구성 데이터를 NLog.config 파일 대신 App.config 파일에 저장하면 ClickOnce와 함께 배포 한 후에도 제대로 작동합니다. 오류가없고 배포 된 응용 프로그램에서 로깅이 작동하고있었습니다.

+0

나를 위해 일한다. – Pat

8

ClickOnce을 사용하여 설치된 경우 NLog.config이 프로그램에 복사되지 않을 때이 문제에 대한 답을 찾았습니다.

  • 빌드 작업 : 내용
  • 복사 출력 디렉토리에 : 복사를 항상
다음과 같이

당신은 Solution Explorer를 사용하여 ProjectNLog.config 파일을 선택해야하고 Properties을 설정

ClickOnce을 사용하여 배포 할 때 파일은 다음과 같아야합니다. b 전자 복사도! :)