Submodules NuGet y Git

Ya he buscado una solución exhaustivamente, intenté diferentes enfoques pero ninguno funcionó, por lo tanto, estoy preguntando aquí.

Mi necesidad actual es tener repositorys Git separados, cada uno con un file de solución .Net con proyectos relacionados. Uno o más de esos repositorys contendrán solo bibliotecas de classs y necesito usar esas bibliotecas dentro de otras soluciones de repositorys.

Lo primero que hice fue utilizar los Submodules de Git para evitar copyr y pegar feos y aún tener el código fuente de las bibliotecas de classs disponibles al desarrollar las aplicaciones.

Así que mi bash fue include el submodule, luego en mi Solución actual do "agregar proyecto existente" y cargar la (s) biblioteca (es) de classs deseada (s).

El gran problema que no he podido superar es restaurar el package Nuget. Los proyectos importados hacen reference a las bibliotecas en ".. \ Packages *" pero cuando se importan como submodule se ubican en una subcarpeta adicional para que no puedan encontrar las dependencies requeridas:

- MySolution.sln - Packages folder - MyAppProject folder - Submodule folder -- EXPECTED packages folder for MyLibraryProject that I cannot generate -- MyLibraryProject folder 

Una solución que encontré e intenté fue esta, pero tiene dos problemas principales:

  • Se supone que funciona usando la restauración del package MsBuild y definitivamente no quiero usarlo
  • Incluso al tratar de usar el package de restauración de MsBuild no funcionó en absoluto, todavía tengo una sola carpeta de packages en mi carpeta de solución actual. Tal vez hice algo mal, pero de nuevo, no quiero usar el enfoque de MsBuild.

Ahora realmente me gustaría saber si hay una manera limpia de resolver este problema, o si lo único que puedo hacer es dejar de tener el código fuente de las bibliotecas disponible en mis soluciones de aplicaciones y publicar mis bibliotecas en un feed y reference NuGet privada. ellos desde allí.

Gracias.

Parece que su problema es que los proyectos del submodule están en un nivel de directory diferente a la solución de su repository. Este es un problema Nuget común porque restaura a nivel de solución. Puede utilizar el script de ruta de sugerencia de reparación aquí para replace sus references por $ (SolutionDir) y probablemente resuelva el problema. https://github.com/owen2/AutomaticPackageRestoreMigrationScript/blob/master/README.md#fixhintpathsps1