문제

ClickOnce를 사용하여 배포되는 솔루션이 있습니다.

응용 프로그램, 여러 참조 어셈블리 및 SQL Server Compact 데이터베이스로 구성됩니다.

기본 응용 프로그램에서 참조되지 않고 런타임에 간단히로드되는 어셈블리도 있습니다. 이 어셈블리는 응용 프로그램 바이너리와 동일한 디렉토리에 응용 프로그램과 함께 배포해야합니다.

컴파일 후 UI 프로젝트의 bin debug (또는 bin release) 디렉토리에 "플러그인"어셈블리를 복사하기위한 Visual Studio를 설정했습니다.

그런 다음 파일을 참조가 아니라 단순히 파일로 UI 프로젝트에 추가했습니다. 빌드 작업을 "Content"로 설정했습니다.이 방법으로 UI 프로젝트의 속성/게시 대화 상자에 나타납니다.

응용 프로그램을 처음 게시했을 때 매력처럼 작동했습니다. 그러나 플러그인 어셈블리를 업데이트하고 다른 버전 번호를 제공하고 다시 게시했습니다. 어셈블리가 업데이트되지 않았지만 처음으로 업로드 된 첫 번째는 여전히 사용되고있었습니다. (사전 설치가없는 깨끗한 컴퓨터에서도).

나는 약간의 파기를했고, 조립품 (libcomposites.dll)이 ClickOnce 응용 프로그램이 바이너리를 데이터 파일을 저장하는 디렉토리로 저장하는 디렉토리에 복사 한 것을 발견했습니다.

두 경우 모두 최초의 출판 된 버전.

개요에는 일부 어셈블리를 참조하는 응용 프로그램이 있습니다.

Control.exe 참조 -> libllc.dll, libdatalayer.dll, libllcextenders.dll
런타임로드 -> libcomposites.dll (libllc.dll도 참조)

새 버전의 libcomposites.dll을 각각 게시하는 응용 프로그램과 동일한 디렉토리에 배포해야합니다.

그 어셈블리의 최초 출판 된 버전이 여전히 사용되는 이유

LibComposites.dll을 모든 출판물에 의해 덮어 쓰도록 강요 할 수있는 방법은 무엇입니까?

도움이 되었습니까?

해결책

좋아, 나도 같은 문제가 있었다. 여기에 내가 그것을 해결하는 방법은 다음과 같습니다 (이상적이지는 않지만 작동합니다.

1) 귀하의 DLL 또는 파일이 솔루션 내부에 있으면, 나는 그것을 벗고 다시 접수 할 것입니다. 2) 프로젝트의 속성으로 이동하여 게시 및 응용 프로그램 파일을 선택하십시오. 파일을 가지고 있고 다시 "포함"(Auto One이 아님)를 다시 선택해야합니다.

당신이 새로운 것을 게시 할 수있는 것보다. 내가 그렇게하지 않으면 왜 작동하지 않는지 모르겠지만 각 게시, 마지막 버전을 얻으려면이 단계를 수행해야합니다 ...

다른 팁

ClickOnce 패키지를 만들고 배포하기 위해 Visual Studio의 게시 기능을 사용하고 있습니까?

행운을 빌어 요.

당신은 더 나을 수 있습니다 마법사를 사용하여 나만의 클릭이 패키지 구축.

나는 Visual Studio 경로를 시작했고 그것이 불행의 길이라는 것을 빨리 발견했습니다. 마법사를 사용하는 방법을 배우고 "자동화"를위한 MSBuild 옵션을보십시오.

나는 같은 문제가 있었다. 문제는 응용 프로그램의 루트 디렉토리에 DLL을 가지고 있었고 프로젝트에 "In"이라는 것이 었습니다.

솔루션은 쉽고 프로젝트에서 DLL 파일을 제외하면이 문제가 사라집니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top