Я чувствую твою боль. (На самом деле, я чувствую это много раз. Когда я делаю полную сборку google-cloud-do tnet repo , над которым я работаю, он втягивает эти библиотеки много раз и заканчивается до огромных размеров.)
Было бы красиво , если бы вы могли добавить своего рода «отрицательную зависимость», чтобы сказать: «Я не хочу Grp c .Core, хотя Google. Cloud.PubSub.V1 зависит от него косвенно, используйте вместо него Grp c. Net .Client ", но я не верю, что есть какой-либо простой способ сделать это в проектах MSBuild.
Мы делаем сделайте «максимальную» попытку поддержать Grp c. Net .Client через пакет Google.Api.Gax.Grp c .GrpcNetClient - вы можете положиться на этот пакет и затем установить свойство GrpcAdapter
в ClientBuilderBase<TClient>
по GrpcNetClientAdapter.Default
. Однако:
- Библиотеки Pub / Sub немного сложнее перенастроить, чем другие, из-за ручного уровня кода, обертывающего сгенерированный код. (Если вам интересно, я могу узнать, как выполнить эту настройку.)
- Мы не проводили значительного тестирования с помощью Grp c. Net .Client и, в частности, библиотеки Pub / Sub выполняет много потоковой передачи; в то время как это должно все просто работать, возможно, возникнут проблемы.
- Это на самом деле не удаляет зависимость Grp c .Core в любом случае - так что вам нужно вручную удалите файлы, которые вам не нужны.
На самом деле не более конкретный c пакет, на который вы можете настроить таргетинг - все, что я могу предложить, это удалить файлы, которые вам не нужны. Вы можете сделать это, например, в цели сборки, которая запускает посткомпиляцию. Возможно возможно , что есть какой-то хитрый способ сообщить MSBuild, что, когда он будет скопировать (скажем) библиотеки iOS в определенное место c, просто исключите их вместо этого - но я не знаю достаточно MSBuild, чтобы сказать, как вы это сделаете (когда они копируются из-за зависимости, а не из-за самого проекта).