매우 큰 DLL (매우 큰 기본 라이브러리에 대한 바인딩)을 참조하는 프로젝트가있는 Xamarin.iOS의 솔루션이 있습니다. 따라서 솔루션 구축 시간이 매우 깁니다. 모든 소스 파일에서 간단한 수정을 한 후 링크를 기다려야합니다. 그래서 내 생각은 프로젝트에서 커스텀 속성을 사용하여 레퍼런스를 제외하고 커다란 어셈블리에 의존하는 코드를 제외하기 위해 .cs 파일에서 사용할 것을 정의했다. 하지만 사용자 지정 조건을 사용하여 참조를 제외 할 수 없습니다. 다음 전략 Xamarin.iOS 작동하지 않습니다 (하지만 비주얼 스튜디오에서 작동) :Xamarin.iOS 프로젝트에서 사용자 정의 조건부 속성을 사용하여 어셈블리 참조를 제외하는 방법
이 파일 CommonProperties.prop 만들기 :
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<LinkWithLargeAssembly>True</LinkWithLargeAssembly>
</PropertyGroup>
</Project>
그래서 생각이다 : 그것은 중요하지 언제 LinkWithLargeAssembly를 정의 할 수 있습니다 False로 설정하고 내 프로젝트를 빠르게 연결합니다. CommonProperties.prop은 큰 라이브러리의 기능에 의존하는 모든 어셈블리에서 가져올 수 있습니다. 수입없이 프로젝트 파일에 직접 I는 재산 $ (LinkWithLargeAssembly)를 정의하는 것도 시도했다
...
<Import Project="CommonProperties.prop" />
...
<ItemGroup>
<Reference Include="monotouch" Condition=" '$(LinkWithLargeAssembly)' == 'True' " />
</ItemGroup>
...
:
파일 위의 프로젝트 파일 .csproj 수입에서과은 (예를 들어 monotouch에 대한) 참조를 제외하려고 . 또한 예를 들어 $ (RootNamespace) 및 $ (AssemblyName)에 이미 정의 된 속성을 사용하려고했습니다. 하지만 Condition 속성은 $ (Configuration) 및 $ (Platform) 속성에서만 작동합니다. 다음 코드는 구성에 따라 모노 터치를 포함 및 제외합니다.
<ItemGroup>
<Reference Include="monotouch" Condition=" '$(Configuration)' == 'Debug' " />
</ItemGroup>
내 조건부 속성을 사용하여 어셈블리 참조를 사용자 정의 할 수 있습니까?