2011-10-05 2 views
4

두 개의 일반 프로젝트와 설정 프로젝트가있는 C# 솔루션이 있습니다. 일반적인 프로젝트 중 하나는 실행 파일이고 다른 하나는 dll이며 다른 솔루션에서도 사용합니다. dll 프로젝트는 로그온 할 수있는 특정 이벤트 로그 소스가 있어야하며 로그 소스를 만들 수없는 사용자가 프로그램을 실행하려고하기 때문에 설치시이 소스를 만들어야합니다.코드를 복제하지 않고 dll에 필요한 설치 작업을 수행하십시오.

실행 가능한 프로젝트의 설치 관리자 클래스를 만들고 설치 프로그램에서 로그 소스를 만들고 설치 프로그램의 사용자 지정 작업에 해당 설치 관리자를 포함시켜이 작업을 수행했습니다. 이 작동하지만 지금은 그 dll을 사용하는 다른 모든 프로젝트에 대해 비슷한 설치 프로그램을 만들어야합니다.

가장 좋은 해결책은 dll 용 설치 프로그램을 작성한 다음 설치 프로젝트에서 사용자 지정 작업 용 DLL을 선택할 수있는 경우입니다. 이렇게하면 로그 생성 요구 사항을 한 번만 명시하면됩니다. 그러나 설치 프로젝트의 사용자 지정 작업에 대한 dll 프로젝트 출력을 선택할 수 없습니다.

또 다른 좋은 해결책은 실행 파일의 설치 프로그램이 실행 가능해야한다는 것을 지정하면 실행 가능 프로젝트가 의존하는 모든 프로젝트에 대한 설치 작업을 수행 할 수 있지만 어떻게 작동하는지 몰라요. 해당 요구 사항을 지정하십시오.

다른 프로젝트간에 설치 코드가 중복되지 않도록하려면 어떻게해야합니까?

+0

이벤트 로그 원본을 프로그래밍 방식으로 작성하려는 경우 dll에 쓰기를 원하십니까? (모든 설정 프로젝트와 설치 프로그램 엉망이 아닌) – mtijn

답변

1

DLL에 설치 관리자 클래스를 추가 한 다음 설치 프로젝트에서 사용자 지정 동작을 실행하기 위해 DLL을 등록 할 수 있어야합니다. 이 문제가 발생하여 문제가 발생하면 Visual Studio의 버전과 사용중인 설치 프로젝트 유형에 대해 좀 더 자세히 설명해 주시겠습니까?

+0

아, 실제로 할 수 있습니다. 예전의 문제점은 setup 프로젝트에 dll 프로젝트 출력을 포함시키지 않았다는 것입니다. dll 프로젝트가 실행 가능하지 않았기 때문에 어떻게 든 내 머리 속에 넣었습니다. 그렇게 할 수 없었습니다. 때로는 누군가가 쉽게 할 수 있다고 말하면됩니다. 그러면 솔루션을 즉시 볼 수 있습니다. 감사. – Boris

1

이벤트 소스를 만드는 사용자 지정 작업을 넣는 MyApplication.Installation 어셈블리 만 있습니다. 모든 설치 프로젝트는이 어셈블리를 참조하고 사용자 지정 작업을 호출합니다.

1

어때? 간단한 배치 파일이나 powershell 스크립트를 작성하여 작성하려는 로그 파일을 작성하십시오. dll 파일 (또는 전체 솔루션에 상관없이)에 대한 설치 프로그램을 만들 수 있습니다. 그런 다음 배치 파일을 호출 할 수 있습니다 설치 프로그램에서 작성한 내용입니다. [here]을 참조하십시오. 이렇게하면 종속 파일/리소스에 대한 생성 논리를 복제하지 않습니다. 기본적으로 동일한 배치 파일을 여러 설치 프로젝트에 사용할 수 있습니다 (동일한 리소스를 사용하는 경우).

이 질문에 대한 답변을 희망합니다. 한 걸음 더 나아가, 고객은 어떤 환경에 있습니까? 그들은 여전히 ​​승 XP (SP2 이전)에 있습니까? 그렇다면 지금 당장 마음에있는 것과 비슷한 것을해야합니다. 그러나 그렇지 않은 경우 클라이언트가 Win 7에있는 경우 너겟을 사용하여 저장소를 게시 할 수 있습니다 (here 참조). 나는 이것이 여전히 소스 코드 공유 솔루션으로 간주되고 있음을 인정한다. 그러나 나는이 방법이 퍼블리싱 바이너리에도 확장 될 수 있다고 믿는다.

관련 문제