비교적 쉽게 달성 할 수 있습니다. 일부 프로젝트 파일을 직접 편집해야합니다. 먼저 프로젝트 B의 클론을 작성하십시오. 새 csproj 파일을 편집기에서 열고 프로젝트 GUID를 새 프로젝트로 변경하십시오 (프로젝트 유형 Guid와 혼동하지 마십시오). 그리고 미래의 실수로 새로운 프로젝트 파일 이름도 변경되지 않도록하십시오.
프로젝트 A에서 필요한 변경 사항은 일부 환경/빌드 설정에서 조건부로 만들고 프로젝트 B 참조에서 생산 또는 개발자를 선택하는 프로젝트 B csproj 참조와 관련이 있습니다.
이하 CppSharp 프로젝트 중 하나의 프로젝트 참조 섹션 사본을 만들었습니다. CppSharp 프로젝트에 대한 프로젝트 참조는 DevelopmentBuild 환경 또는 MSBuild 속성이 false이고 DevelopmentBuild가 True로 설정된 CppSharp.Dev.csproj에 대한 참조 인 경우 CppSharp.csproj에 대한 두 가지 참조로 나뉩니다.
<ItemGroup>
<ProjectReference Include="..\Core\CppSharp.csproj" Condition"$(DevelopmentBuild) != 'True'">
<Project>{C600C309-B2CD-1D15-DBE6-0BBDC71253A3}</Project>
<Name>CppSharp</Name>
</ProjectReference>
<ProjectReference Include="..\CoreDev\CppSharp.Dev.csproj" Condition"$(DevelopmentBuild) == 'True'">
<Project>{C600C309-B2CD-1D15-DBE6-0BBDC71253A4}</Project>
<Name>CppSharp</Name>
</ProjectReference>
<ProjectReference Include="..\AST\CppSharp.AST.csproj">
<Project>{BC4C5C41-A8AF-EBE5-5135-249C3D77B768}</Project>
<Name>CppSharp.AST</Name>
</ProjectReference>
<ProjectReference Include="..\Runtime\CppSharp.Runtime.csproj">
<Project>{189FF169-0498-10BC-2DCA-F5401922F0C7}</Project>
<Name>CppSharp.Runtime</Name>
</ProjectReference>
<ProjectReference Include="..\..\build\vs2015\projects\CppSharp.Parser.CLI.vcxproj">
<Project>{C75EB680-33C0-938E-BC2D-DA40288ECA4D}</Project>
<Name>CppSharp.Parser.CLI</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
#IF를 사용하십시오. msdn : https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/preprocessor-directives/preprocessor-if – jdweng
참조 가능한 [Visual Studio 프로젝트 : 한 구성에 대한 참조 만 포함하는 방법 ?] (https://stackoverflow.com/questions/1493749/visual-studio-project-how-to-include-a-reference-for-one-configuration-only) –
또는 https://stackoverflow.com/ 질문/14335186/여러 구현을 가진보다 인라인 인 환경에 따라 달라지는 인터페이스 변경 중 ... "프로젝트 B의 복제본"작성에 대해 강력하게 조언합니다. 코드 복사는 대개 유지 관리 문제로 이어집니다. 대부분 IoC가 있거나없는 구성 프레임 워크를 선택하는 것이 더 나은 선택입니다. –