visual-studio-2010 - revirtiendo - visual studio la configuracion de nuget no es valida
eliminar la restauraciĆ³n del paquete nuget de la soluciĆ³n (15)
¿No es este ajuste aquí?
Opciones ... -> Administrador de paquetes de Nuget -> [desmarcar] Permitir que Nuget descargue los paquetes faltantes
Estoy usando Visual Studio Professional + Resharper 8.2
Agregué la característica reciente de restauración de paquete nuget a una solución usando ''Habilitar restauración de paquete NuGet'': http://docs.nuget.org/docs/workflows/using-nuget-without-committing-packages
Sin embargo, rompió mi servidor de compilación y no tuve tiempo de arreglarlo, así que quise eliminarlo. No hay opción para eso hasta donde sé, así que eliminé manualmente la siguiente línea de todos mis archivos * .csproj:
<Import Project="$(SolutionDir)/.nuget/nuget.targets" />
El problema ahora es que cada vez que mis archivos * .csproj se desprotegen o abren mi solución, la línea se agrega automáticamente de nuevo, rompiendo mi compilación si accidentalmente la ingreso :(
¿Alguna idea de cómo puedo eliminarla permanentemente?
ACTUALIZACIÓN: a pesar de la respuesta a continuación, sigue volviendo al abrir la solución, ¿alguien con el mismo problema?
Accidentalmente habilité esta opción de "restauración del paquete" al abrir mi proyecto en VS2012 RC y comencé a recibir errores que se parecían a los siguientes:
"Error 1 No se puede ubicar ''C: / FolderX / SomeProject.nuget / nuget.exe''"
Para corregir el error, seguí las instrucciones anteriores, abrí cada archivo de proyecto en el bloc de notas y eliminé esa línea de RestorePackage.
De hecho, tenemos una publicación en el blog al respecto y al final de la publicación se mencionó un script de powershell para ayudar con la migración.
http://docs.nuget.org/docs/workflows/migrating-to-automatic-package-restore
Elimine el archivo packages.config dentro de su solución.
Las soluciones que actualmente utilizan la restauración de paquete integrado en MSBuild se pueden migrar a la restauración automática de paquetes. Por lo que entiendo, esto debería ayudar a aquellos que están encontrando problemas de compilación de CI. (Por favor corrígeme si me equivoco).
Consulte el documento en el sitio web de nuget: migración de soluciones integradas de MSBuild para utilizar la restauración automática de paquetes en http://docs.nuget.org/docs/workflows/migrating-to-automatic-package-restore
Allí hay información para convertir con y sin TFS.
David Ebbo también publicó información en http://blog.davidebbo.com/2014/01/the-right-way-to-restore-nuget-packages.html
Me encontré con exactamente el mismo problema y traté de eliminar todas las etiquetas .nuget y RestorePackage de los archivos del proyecto, pero un proyecto simplemente no se volvió a cargar, sin importar lo bien que lo examiné para las etiquetas .nuget y RestorePackages. Supongo que hay algunas referencias ocultas a esto en alguna parte.
Al final, fue más fácil simplemente copiar los archivos y crear un nuevo proyecto e importarlo a la solución.
No me veía muy bien, hay otra propiedad agregada a los archivos del proyecto:
<RestorePackages>true</RestorePackages>
Solo tiene que eliminar esto y todas estas líneas manualmente de todos los archivos * .csproj:
<Import Project="$(SolutionDir)/.nuget/nuget.targets" />
ACTUALIZAR:
Resulta que es un pequeño error persistente, si está editando manualmente los archivos de su proyecto, asegúrese de cerrar la solución y eliminar todas las líneas del proyecto a la vez , de lo contrario, solo se agregarán una vez que el proyecto se vuelva a cargar ...
ACTUALIZACIÓN2:
Elimine también la carpeta .nuget de la raíz de la solución
ACTUALIZACIÓN3:
Una versión posterior de NuGet agrega otra sección que debe eliminar:
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists(''$(SolutionDir)/.nuget/NuGet.targets'')" Text="$([System.String]::Format(''$(ErrorText)'', ''$(SolutionDir)/.nuget/NuGet.targets''))" />
</Target>
Actualización4
Dentro de NuGet.Targets
ubicado en la carpeta .nuget
, hay otra sección que se agrega a los proyectos nuevos ... cambiar a falso.
<!-- We need to ensure packages are restored prior to assembly resolve -->
<BuildDependsOn Condition="$(RestorePackages) == ''false''">
RestorePackages;
$(BuildDependsOn);
</BuildDependsOn>
NuGet tiene una publicación en el blog sobre la migración a la restauración automática de paquetes: http://docs.nuget.org/docs/workflows/migrating-to-automatic-package-restore
Hay un script de powershell al que se hace referencia en la publicación del blog que se encargará de eliminar las líneas necesarias de forma automática (y recursiva): https://github.com/owen2/AutomaticPackageRestoreMigrationScript/blob/master/migrateToAutomaticPackageRestore.ps1
Ofrecer una opción de Deshabilitar restauración de paquete NuGet directamente está marcado como No se soluciona: https://nuget.codeplex.com/workitem/1883
Nuget apesta. Simplemente elimine los elementos y elimine o comente los elementos del paquete de packages.config en el directorio raíz de los proyectos donde esto sea un problema. Use referencias directas en alguna carpeta de lib en su lugar.
<?xml version="1.0" encoding="utf-8"?>
<packages>
<!--<package id="EntityFramework" version="6.0.2" targetFramework="net45" />-->
</packages>
Para cualquier persona que todavía necesite limpiar un proyecto utilizando la restauración de paquete NuGet antigua, la herramienta IFix disponible here automatiza el proceso.
Simplemente ejecute el instalador ( IFix
se agregará a PATH
) y luego ejecute lo siguiente:
IFix nugetrestore --fix
Puede ejecutarlo en modo de verificación primero para ver lo que se limpiará:
IFix nugetrestore --check
Para deshabilitar la restauración del paquete Nuget:
- Eliminar carpeta .nuget
- Eliminar líneas específicas de todos los archivos .csproj
Líneas para eliminar:
<Import Project="$(SolutionDir)/.nuget/nuget.targets" />
<RestorePackages>true</RestorePackages>
Nota: asegúrese de hacer todos los cambios de una vez antes de volver a cargar la solución o de lo contrario los volverá a agregar.
Esto se basa en el siguiente artículo: http://bartwullems.blogspot.no/2012/08/disable-nuget-package-restore.html
Además, es posible que desee verificar que esta opción esté desactivada: http://docs.nuget.org/docs/workflows/using-nuget-without-committing-packages
Pude resolver este problema siguiendo estos pasos:
1) asegúrese de realizar una copia de seguridad de todos sus cambios actuales en los archivos bloqueados.
2) elimine físicamente la carpeta de la solución de su C: / (ruta que está mapeada a TFS).
3) obtenga lo último de TFS para su solución.
4) copie (si corresponde) sus cambios de la copia de seguridad que realizó en el paso-1.
Espero que ayude !
Seguí la solución aceptada sin éxito en 2012. Sin embargo, esto funcionó,
- Cerrar completamente el VS
- Actualice
<RestorePackages>true</RestorePackages>
a<RestorePackages>false</RestorePackages>
y elimine<Import Project="$(SolutionDir)/.nuget/nuget.targets" />
line - También se renombró como
nuget.exe
paranuget.exe.NotExe
Tuve el mismo problema. Lo que terminé haciendo fue: 1) entrar en cada archivo .csproj del proyecto en la solución, abrirlo en el bloc de notas, luego eliminar la parte del xml y guardarlo.
2) Luego eliminé todos los archivos package.config en toda la solución.
3) Luego tuve que eliminar las carpetas .nuget y paquete.
En este punto, tenía una solución totalmente gratuita NuGet.
4) Luego hice una referencia manual a los archivos DLL necesarios y accedí a la compilación, y la solución se ejecutó como un campeón sin que se necesitaran los paquetes NuGet.
Vaya a su directorio de soluciones donde tiene la carpeta [$(SolutionDir)/.nuget/nuget.targets] .nuget
y el archivo nuget.targets
debajo de ella elimine la carpeta y cambie las líneas de eliminación de su csproj por última vez.
El problema no volverá a molestarte nuevamente.