"No se pueden actualizar las dependencias del proyecto" después de confirmar a Subversion


Tengo un proyecto de instalación en .NET. Cuando guardo el proyecto y los otros proyectos en subversion, el proyecto de instalación ya no se compila. Aparece el error " No se pueden actualizar las dependencias del proyecto."

Author: Cœur, 2010-07-13

13 answers

Hay un largo hilo de discusión sobre esto en MSDN. Parece que hay muchas causas posibles. La discusión incluye algunos enlaces para este problema de Microsoft. Aquí hay una revisión para VS2005 y aquí hay una solución para VS2010.

 49
Author: msergeant,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-07-13 12:33:33

Cerrar VS2010 y luego volver a abrirlo siempre me ha funcionado:)

 94
Author: Chuck Claunch,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-09-07 14:27:49

He tenido el mismo problema, pero ninguna de las resoluciones mencionadas parecía funcionar para mí. Reconstruir el proyecto de configuración funcionaría, pero es una molestia, ya que incluimos los resultados del proyecto de más de 30 proyectos.

Lo que encontré que funciona es un enfoque muy similar a lo que hizo @Marc.

  1. Noté qué dependencias fueron reportadas por Visual Studio como errores
  2. Editar el .archivo vdproj en Notepad++
  3. Busca el .dll que está dando problemas. Usted verá un Sección" ScatterAssemblies". Si está vacía, elimine toda la referencia dll
  4. Guardar archivo

En todos los casos tuve múltiples referencias a la misma dll (no estoy seguro de cómo sucedió esto)

Ejemplo de referencia correcta:

"{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_11EC89A306FFB83A269ACC2BF8D8462B"
{
"AssemblyRegister" = "3:1"
"AssemblyIsInGAC" = "11:FALSE"
"AssemblyAsmDisplayName" = "8:Some.OrOther.Lib, Version=1.601.4042.16978, Culture=neutral, processorArchitecture=MSIL"
                "ScatterAssemblies"
                {
                                "_11EC89A306FFB83A269ACC2BF8D8462B"
                                {
                                "Name" = "8:Some.OrOther.Lib.dll"
                                "Attributes" = "3:512"
                                }
                }
"SourcePath" = "8:Some.OrOther.Lib.dll"
"TargetName" = "8:"
"Tag" = "8:"
"Folder" = "8:_79891234C744498C83755DDEA682F0BF"
"Condition" = "8:"
"Transitive" = "11:FALSE"
"Vital" = "11:TRUE"
"ReadOnly" = "11:FALSE"
"Hidden" = "11:FALSE"
"System" = "11:FALSE"
"Permanent" = "11:FALSE"
"SharedLegacy" = "11:FALSE"
"PackageAs" = "3:1"
"Register" = "3:1"
"Exclude" = "11:FALSE"
"IsDependency" = "11:TRUE"
"IsolateTo" = "8:"
}

Ejemplo de referencia incorrecta:

"{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_11EC89A306FFB83A269ACC2BF8D8462B"
{
"AssemblyRegister" = "3:1"
"AssemblyIsInGAC" = "11:FALSE"
"AssemblyAsmDisplayName" = "8:Some.OrOther.Lib, Version=1.601.4042.16978, Culture=neutral, processorArchitecture=MSIL"
                "ScatterAssemblies"
                {
                }
"SourcePath" = "8:Some.OrOther.Lib.dll"
"TargetName" = "8:"
"Tag" = "8:"
"Folder" = "8:_79891234C744498C83755DDEA682F0BF"
"Condition" = "8:"
"Transitive" = "11:FALSE"
"Vital" = "11:TRUE"
"ReadOnly" = "11:FALSE"
"Hidden" = "11:FALSE"
"System" = "11:FALSE"
"Permanent" = "11:FALSE"
"SharedLegacy" = "11:FALSE"
"PackageAs" = "3:1"
"Register" = "3:1"
"Exclude" = "11:FALSE"
"IsDependency" = "11:TRUE"
"IsolateTo" = "8:"
}

También obtuve el mismo "Dos o más objetos tienen la misma ubicación de destino ('[targetdir]\MyAssembly.dll') " advirtiendo que @ Marc consiguió ... pero el proyecto de instalación compila y funciona bien.

 29
Author: Jabezz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-03-30 09:32:20

El enlace correcto para hot-fix para VS2010 es:

Http://connect.microsoft.com/VisualStudio/Downloads/DownloadDetails.aspx?DownloadID=30681

Funciona bien después de la instalación

 10
Author: Pranav Singh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-08-16 11:43:44

Tuve el problema similar y encontré una solución en esta larga y vieja discusión sobre MSDN.
Como respondió el usuario 'Jeff Hunsaker' el jueves 26 de agosto de 2010 5: 51 PM (enlace directo no es posible):

Acabo de encontrar esto al actualizar los proyectos de implementación de Visual Studio 2008 a VS 2010. La solución de Hans (arriba) funcionó para mí.

  1. Editar el .archivo vdproj en el bloc de notas.
  2. Buscar "sourcePath" = " 8:
  3. Para cada ensamblado / dll, proporciona la ruta completa
  4. Guardar archivo

Dentro de mi .archivo vdproj, tenía varias entradas simplemente haciendo referencia al ensamblado:
"sourcePath" = " 8: MyAssembly.DLL "

Aunque Visual Studio [de alguna manera] conocía la ubicación del archivo, recibí el error" No se pueden actualizar las dependencias del proyecto " hasta que proporcioné la ruta completa:

"sourcePath" = " 8:..\..\..\ build \ bin \ MyCompany.Mi asamblea.DLL "

Saludos,

Jeff...

Noté qué dependencias fueron reportadas por Visual Studio y escribí un script para arreglarlas en caso de que esto fuera necesario.

Tenga en cuenta que esto ahora me da una advertencia "Dos o más objetos tienen la misma ubicación de destino ('[targetdir]\MyAssembly.dll'). Pero puedo vivir con eso.

 6
Author: Marc,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-09-07 14:07:40

Esto resolvió el mismo problema para mí: Agregué las asambleas mencionadas en el mensaje de error al GAC. Cuando recompilé el proyecto, las DLL aparecieron en "Dependencias detectadas" en el Explorador de Soluciones y obtuve el mismo error. Luego excluí las DLL (haga clic derecho y seleccione Excluir) y el proyecto finalmente compilado ok.

 4
Author: Arne,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-11-01 10:13:59

El problema puede ser causado por archivos huérfanos en la sección" Deployable "- > "File" de la .archivo vdproj. Puede verificar esto eliminando todos los archivos del proyecto de instalación en Visual Studio (primero haga una copia de seguridad). Si abres el .vdproj archivo con un editor de texto y todavía ver las entradas en la sección" Archivo " que tiene este problema. Puede anotar las claves de estos archivos y eliminarlos del original .archivo vdproj y debería funcionar de nuevo.

Alternativamente compilar este programa de solución rápida (probado solo con Visual Studio 2010):

using System;
using System.Collections.Generic;
using System.Text;
using System.IO;

class Program {
    static void Main(string[] args) {
        try {
            if (args.Length == 0) {
                Console.WriteLine("FixVDProj <path to .vdproj file>");
                return;
            }

            if (!File.Exists(args[0])) {
                throw new Exception("File " + args[0] + " does not exist!");
            }

            string[] strarSource = File.ReadAllLines(args[0]);
            List<string> listDest = new List<string>();
            List<string> listKnownKeys = new List<string>();

            int iSection = 0;
            bool bAccept = true;
            bool bNeedFix = false;

            foreach (string strLine in strarSource) {
                switch (iSection) {
                    case 0:
                        if (strLine.Trim() == "\"DeployProject\"") {
                            listDest.Add(strLine);
                            iSection++;
                        } else {
                            throw new Exception("\"DeployProject\" not found");
                        }
                        break;

                    case 1:
                        if (strLine.Trim() == "\"Hierarchy\"") {
                            iSection++;
                        }
                        listDest.Add(strLine);
                        break;

                    case 2:
                        if (strLine.Trim().StartsWith("\"MsmKey\" = ")) {
                            int p = strLine.IndexOf('=');
                            string strMsm = strLine.Substring(p + 1).Trim();
                            if (strMsm.StartsWith("\"8:") && strMsm.EndsWith("\"")) {
                                listKnownKeys.Add(strMsm.Substring(3, strMsm.Length - 4));
                            } else {
                                throw new Exception("Invalid MsmKey " + strMsm);
                            }
                        } else if (strLine.Trim() == "\"Deployable\"") {
                            iSection++;
                        }
                        listDest.Add(strLine);
                        break;

                    case 3:
                        if (strLine.Trim() == "\"File\"") {
                            iSection++;
                        }
                        listDest.Add(strLine);
                        break;

                    case 4:
                        if (strLine.Trim() == "{") {
                            iSection++;
                        }
                        listDest.Add(strLine);
                        break;

                    case 5:
                        if (strLine.Trim() == "}") {
                            listDest.Add(strLine);
                            iSection = -1;  // finished
                        } else if (strLine.Trim().StartsWith("\"") && strLine.Contains(':')) {
                            int p = strLine.IndexOf(':');
                            string strKey = strLine.Substring(p + 1, strLine.Length - p - 2);
                            if (listKnownKeys.Contains(strKey)) {
                                Console.WriteLine("Accepted key " + strKey);
                                bAccept = true;
                                listDest.Add(strLine);
                            } else {
                                Console.WriteLine("Invalid key " + strKey + " removed");
                                bAccept = false;
                                bNeedFix = true;
                            }
                        } else if (strLine.Trim() == "{") {
                            if (bAccept) {
                                listDest.Add(strLine);
                            }
                            iSection++;
                        } else {
                            listDest.Add(strLine);
                        }
                        break;

                    case 6:
                    case 7:
                    case 8:
                    case 9:
                        if (strLine.Trim() == "{") {
                            iSection++;
                        } else if (strLine.Trim() == "}") {
                            iSection--;
                        }
                        if (bAccept) {
                            listDest.Add(strLine);
                        }
                        break;

                    case 10:
                        throw new Exception("File structure depth exceeded!");

                    default:
                        listDest.Add(strLine);
                        break;
                }
            }

            if (bNeedFix) {
                File.Copy(args[0], args[0] + ".bak", true);
                File.WriteAllLines(args[0], listDest);
                Console.WriteLine("File " + args[0] + " has been fixed!");
            } else {
                Console.WriteLine("File " + args[0] + " did not need fix!");
            }

        } catch (Exception e) {
            Console.WriteLine(e.ToString());
        }
    }
}
 3
Author: quietly-confident,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-04-04 10:14:46

Logré solucionar este problema eliminando el proyecto instalador de la solución y luego agregando el proyecto existente de nuevo.

 3
Author: Apogee,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-06-26 08:39:57

Reiniciar VS2010 no funcionó para mí, pero logré que todo funcionara haciendo una 'Solución Limpia', luego una 'Solución de compilación'. Sin embargo, intentar 'Reconstruir solución' después de la limpieza no funcionó. Entonces podría ejecutar la Solución con F5 como normal.

 1
Author: Mr Chops,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-04-29 09:25:32

Cuando obtengo este error, encuentro mi proyecto de implementación VS2010 (.vdproj) está 'dañado'. Específicamente, los elementos en la sección FILE del archivo VDPROJ tienen GUID que faltan en la sección HIERARCHY del archivo VDPROJ. Esto se describe en detalle a continuación.

1) Los proyectos de implementación de VS2010 incluyen las siguientes secciones:

"Hierarchy"
{
}
"Deployable"
{
    "File"
    {
    }
} 

2) La sección HIERARCHY contiene GUID para cada elemento (por ejemplo, archivo) agregado al proyecto de implementación. En además, cada archivo agregado al proyecto aparece como un elemento en la sección DEPLOYABLE > FILE. El siguiente ejemplo muestra una configuración normal para el archivo msimg32.dll . Observe el GUID correspondiente (es decir, _1C15DB39774F7E79C84F1CC87ECFD60A) en las secciones HIERARCHY y FILE.

"Hierarchy"
{
  "Entry"
    {
    "MsmKey" = "8:_1C15DB39774F7E79C84F1CC87ECFD60A"
    "OwnerKey" = "8:_0C67A6B6004040DC93A0113E1100615D"
    "MsmSig" = "8:_UNDEFINED"
    }
  }
"Deployable"
{
  "File"
  {
    "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_1C15DB39774F7E79C84F1CC87ECFD60A"
    {
        "SourcePath" = "8:MSIMG32.dll"
        "TargetName" = "8:MSIMG32.dll"
        … more information ...
    }
  }
}

3) Mis proyectos de implementación VS2010 se pueden corromper de dos maneras:

  • A) Un elemento en la sección FILE se duplica y el duplicado item recibe un GUID que no aparece en la sección HIERARCHY.

  • B) El GUID asociado a un elemento en la sección FILE ha sido eliminado de la sección HIERARCHY (es decir, el elemento en la sección FILE está huérfano).

3a) Ejemplo del primer problema-elemento duplicado en la sección FILE :

En este ejemplo, el archivo msimg32.dll tiene dos entradas en la sección FILE. La primera (es decir, correcto) la entrada tiene un GUID coincidente (es decir, _1C15DB39774F7E79C84F1CC87ECFD60A) en la sección HIERARCHY, pero el GUID para la segunda entrada (es decir, error) (es decir, 2DDC4FA12BFD46DEAED0053D23331348) no aparece en el JERARQUÍA sección.

"Hierarchy"
{
    "Entry"
    {
    "MsmKey" = "8:_1C15DB39774F7E79C84F1CC87ECFD60A"
    "OwnerKey" = "8:_0C67A6B6004040DC93A0113E1100615D"
    "MsmSig" = "8:_UNDEFINED"
    }
}
"Deployable"
{
  "File"
  {
    "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_1C15DB39774F7E79C84F1CC87ECFD60A"
    {
        "SourcePath" = "8:MSIMG32.dll"
        "TargetName" = "8:MSIMG32.dll"
        … more information ...
    }
    "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_2DDC4FA12BFD46DEAED0053D23331348"
    {
        "SourcePath" = "8:MSIMG32.dll"
        "TargetName" = "8:MSIMG32.dll"
        … more information ...
    }
  }
}

3b) Ejemplo de segundo problema-elemento huérfano en la sección FILE:

En este ejemplo, el archivo msimg32.dll tiene una entrada en la sección FILE. Pero el GUID asociado con esta entrada (es decir, A515046ADA6244F2A260E67625E4398F) no tiene una entrada coincidente en (es decir, falta en) la sección HIERARCHY.

"Hierarchy"
{
}
"Deployable"
{
  "File"
  {
    "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_A515046ADA6244F2A260E67625E4398F"
    {
        "SourcePath" = "8:MSIMG32.dll"
        "TargetName" = "8:MSIMG32.dll"
        … more information ...
    }
  }
}

4) Solución: Para los dos problemas ilustrados anteriormente, la solución es eliminar el elemento huérfano en la sección ARCHIVO .

El siguiente ejemplo muestra cómo aparece la sección FILE en el punto 3a anterior después de la segunda entrada para msimg32.dll ha sido eliminado.

"Hierarchy"
{
    "Entry"
    {
    "MsmKey" = "8:_1C15DB39774F7E79C84F1CC87ECFD60A"
    "OwnerKey" = "8:_0C67A6B6004040DC93A0113E1100615D"
    "MsmSig" = "8:_UNDEFINED"
    }
}
"Deployable"
{
  "File"
  {
    "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_1C15DB39774F7E79C84F1CC87ECFD60A"
    {
        "SourcePath" = "8:MSIMG32.dll"
        "TargetName" = "8:MSIMG32.dll"
        … more information ...
    }
  }
}

5) Encontré al corrupto las entradas en el VDPROJ solo ocurrieron para:

  • a) archivos ensambladores (es decir, DLL) de mis proyectos C # y
  • b) dependencias detectadas de mis proyectos de C++ (por ejemplo, versión.dll, urlmon.dll)
 1
Author: Ian Bell,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-10-30 21:53:34

Aquí hay un par de soluciones que funcionan:

1) La eliminación de una de las DLL problema del proyecto de configuración, y luego volver a añadir solo que uno resolvió el problema para mí. Esto funcionó incluso cuando había muchos DLL con el problema. Eliminar y agregar solo uno de ellos activó VS2010 para arreglarlos todos de alguna manera.

2) Recompile la solución, luego intente actualizar las dependencias de nuevo. La reconstrucción ayuda a visual studio a descubrir cuáles son las dependencias, ya que puede ser luchando para encontrar las dependencias sin nada construido.

3) Reiniciar Visual Studio

La revisión de VS2010 enlazada anteriormente no funcionó para mí. A veces reiniciar VS2010 solucionará el problema y cuando eso no funciona, hacer lo anterior funciona.

 0
Author: Leigh McCulloch,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-05-03 03:37:43

Esto también puede suceder cuando está tratando de depurar y ha seleccionado el modo de liberación. Me tienes justo ahora: (

 0
Author: Richard N,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-10-09 14:41:04

Me gustaría añadir, que obtengo el mismo error cuando edito el proyecto de implementación desde mi computadora en lugar de la computadora compiladora dedicada.

La última vez que recibí ese error, necesitaba revertir los últimos cambios y volver a hacerlo desde el equipo compilador dedicado.

 0
Author: Hugo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-12-24 14:25:06