내 솔루션에는 여러 클래스 라이브러리 프로젝트 (.dll)를 사용하는 콘솔 응용 프로그램 (.exe) 프로젝트가 있습니다. 클래스 라이브러리 프로젝트에는 콘솔 응용 프로그램에 대한 참조가 있습니다. 콘솔 응용 프로그램은 런타임 중에 클래스 라이브러리 프로젝트를로드합니다. (.exe 인은 같은 디렉토리로로드에서 DLL의의를 검색합니다.)프로젝트를 실행해도 다른 (참조되지 않은) 프로젝트가 생성되지 않습니다
_________________
| | <-- library1.dll
| application.exe | <-- library2.dll
|_________________| <-- library3.dll
내가 솔루션을 청소하고 또는 디버그이, 비주얼 스튜디오는 해당 콘솔 프로젝트를 (빌드 시작을 명중 합니다. exe) 시작 프로젝트입니다. 그러나 콘솔 응용 프로그램은 라이브러리를 참조하지 않으므로 라이브러리 프로젝트 (.dll)를 빌드하지 않습니다.
라이브러리 프로젝트에서 직접 또는 전체 솔루션에서 빌드을 누르는 경우 .dll 파일을 가져옵니다. 그러나 이것은 내가 잊어 버릴 수있는 행동이므로 .dll 파일이없는 응용 프로그램이나 .dll 파일의 이전 빌드로 끝날 수도 있습니다.
콘솔 응용 프로그램을 실행하거나 빌드 할 때 VS2015가 모든 프로젝트를 빌드하게하고 싶습니다. 이미 시도 :
=> 콘솔 응용 프로그램에서 DLL로 참조를 작성했지만 실패하면 순환 참조가 발생합니다.
=> 콘솔 응용 프로그램 프로젝트에 빌드 종속성을 추가하고 라이브러리 프로젝트도 빌드합니다. 그러나 Visual Studio에서 언급 한 것처럼 순환 참조도 가능하기 때문에 불가능합니다.
=> 솔루션의 모든 프로젝트를 시작 프로젝트로 만듭니다. 이 실제로 작품 VS2015로 모든 프로젝트를 빌드하고 .exe 파일을 만듭니다. 하지만 그러면 콘솔 응용 프로그램이 시작 응용 프로그램이 될 수 없다는 것을 알리는 응용 프로그램을 실행할 때마다 성가신 팝업이 나타납니다.
=> 다른 라이브러리가 참조해야하는 항목을 보유하는 다른 라이브러리 프로젝트 (connect.dll)를 만들어 콘솔 응용 프로그램을 분할합니다. 그리고 나서 모든 프로젝트는 common.dll을 참조하고 콘솔 어플리케이션은 마침내 콘솔 라이브러리를 참조 할 수 있습니다. 이것은 또한 는 , 작동하지만은 추가 프로젝트를 잎 :
_____________ _________________
| | <------------------- | |
| | <-- library1.dll <-- | |
| connect.dll | <-- library2.dll <-- | application.exe |
| | <-- library3.dll <-- | |
|_____________| |_________________|
도 참조되지 않은 프로젝트를 VS2015 빌드를 만들 수있는 더 나은 방법이 있나요, 추가하지 않고, 콘솔 응용 프로그램 프로젝트를 빌드 할 때 완전히 새로운 프로젝트?
작성한 내용은 답변이 아닙니다. 그러나 귀하의 질문에 대답하기 위해 : 응용 프로그램은 라이브러리에 구현 된 클래스의 인터페이스를 포함하고로드 된 모든 라이브러리를 추적합니다. 라이브러리가 응용 프로그램을 참조하기 때문에 라이브러리는 이제 서로의 코드를 호출합니다. 그리고 dll을 이런 식으로 사용함으로써, 나는 dll 파일을 추가/제거함으로써 간단하게 라이브러리를 꺼내거나 연결할 수 있습니다. –