답변

19

정말로. 다음 중 하나를 수행해야합니다.

  • 솔루션을 올바른 순서로 빌드하는 빌드 스크립트를 만듭니다.
  • 사전 빌드 솔루션 A 만 솔루션 B에서 빌드 된 이진 출력을 참조하십시오.
  • 두 가지 솔루션의 모든 프로젝트를 포함하는 세 번째 솔루션을 작성하십시오.

첫 번째 두 항목이 가장 일반적이며 두 번째 항목은 개인적으로 선호합니다.

+2

* 한숨 * ... 확인; 감사! –

+0

net_prog의 답변을 참조하십시오. –

+0

[실제] (https://stackoverflow.com/a/826009/712526) [가능했습니다] (https://msdn.microsoft.com/en-us/library) /ee817674.aspx). 2009 년에는 어떤 식 으로든 2015 년에 더 나아질 것으로 기대합니다. – jpaugh

0

솔루션은 일종의 실행 파일 또는 dll을 만들기 위해 빌드 된 어셈블리 모음입니다. 하나의 솔루션을 다른 솔루션에 종속시키는 것이 이치에 맞지 않습니다. 출력 어셈블리 (실행 가능/dll)는 참조하는 어셈블리에 따라 다릅니다. 솔루션이 다른 어셈블리에 따라 다르면이를 참조하십시오. 솔루션에 프로젝트를 추가 할 수 있습니다 (파일> 추가> 기존 프로젝트). 그런 다음 출력 프로젝트에서이 프로젝트의 참조를 추가 할 수 있습니다.

1

그렇게 할 수 없습니다. 그리고 왜 당신은하고 싶습니까?

프로젝트에 의존하는 모든 프로젝트 ('다른'솔루션의 프로젝트)를 솔루션에 추가하기 만하면됩니다.

그런 다음 프로젝트간에 프로젝트 참조 (파일 참조 아님)를 사용하십시오.

+3

저는 제어 할 수없는 다른 솔루션에 의존하고 싶습니다. 해당 솔루션이 다른 프로젝트를 포함하도록 업데이트되면 자동으로 고려해야합니다. –

+1

그런 경우 다음 중 하나를 수행하십시오. 솔루션 파일을 자동으로 생성하는 스크립트를 작성하십시오. 또는 솔루션에 프로젝트를 수동으로 추가하고 모든 프로젝트가 솔루션에 있음을 확인하는 스크립트를 만듭니다. 솔루션 파일은 매우 간단한 구조의 간단한 텍스트 파일입니다. – codeape

+0

종속성 트리가 깊고 복잡하면 VS 외부의 메커니즘을 사용하여 종속 DLL을 최신 상태로 유지하고 적절한 위치에서 중앙 관리 리포지토리에서 해당 DLL을 사용할 수있는 경우 많은 컴파일 시간을 절약 할 수 있습니다. . –

11

이 게시물은 오래되었지만, 요즘은 모든 솔루션에 대한 nuget 패키지를 만들어 다른 솔루션의 종속성을 쉽게 재사용 할 수 있습니다. VS 2015에는 내장 된 누겟 패키지 건물이 있지만 현재 출시 후보자입니다. Visual Studio 2013에서는 Nuget.Packaging Nuget 패키지를 사용하여 프로젝트를 Nuget 패키지로 빌드 할 수 있습니다.

그런 다음 패키지의 새 버전을 로컬 네트워크 공유에 게시하고 Visual Studio에서 리포지토리로 구성하면됩니다.

그런 다음 다른 솔루션의 프로젝트는 해당 패키지에 의존 할 수 있습니다.

예를 들어 "Core Framework"라는 솔루션에 재사용 가능한 유틸리티 DLL이 있고 "XYZEcosystem"솔루션에 구축중인 웹 사이트에 유틸리티를 사용하고 싶다고 가정 해보십시오.

CoreFramework 솔루션에서는 utility dll로 컴파일하고 dll을 포함하는 유틸리티 프로젝트 용 nuget 패키지를 빌드하고 패키지에 pdb 파일을 포함시킵니다.

그런 다음 네트워크 공유에 게시합니다.

그래서 패키지의 ID가 "XYZ.Core.Utilities"이고 버전이 1.0.0.0이라고 가정 해 보겠습니다.

이제 XYZEcosystem에서 패키지 관리자 콘솔을 사용하고 리포지토리 드롭 다운을 리포지토리에 설정하고 "Install-Package XYZ.Core.Utilities"를 입력하면 최신 버전의 XYZ.Core.Utilities가 설치됩니다.

XYZ.Core.Utilities를 변경하면 XYZEcosystem에서 Update-Package XYZ.Core.Utilities를 실행할 수 있으며 새 버전이 선택됩니다.