【问题标题】:Compile Setup project with devenv.com - "ERROR: Unable to update the dependencies of the project"使用 devenv.com 编译安装项目 - “错误:无法更新项目的依赖项”
【发布时间】:2023-03-29 01:12:01
【问题描述】:

我在 VS 2010 中有一个安装部署项目。 该项目与 VS 2010 的 GUI 界面完美编译,但任何时候我试图通过 vs cmd (devenv.com) 编译它都会出现这个错误:

ERROR: Unable to update the dependencies of the project.

请注意,错误中没有提到任何 dll(例如,错误不包含“无法确定对象‘xxx’的依赖关系”)。

请不要告诉我清除此设置中的所有文件并从头开始 - 这不是真正的解决方案! 我有 5 个项目都有这个确切的错误,我不想重新安排每个项目。 不仅如此,这并不能向我保证该问题将来不会再次发生。

非常感谢!

【问题讨论】:

标签: visual-studio-2010 devenv vdproj


【解决方案1】:

我曾经在这些安装程序项目停止工作时(无论出于何种原因)从头开始重新构建它们,但我发现了一种更快(且更不容易出错)的解决方法。这个对我有用。也许它会为你工作。

  1. 通过 IDE 从您的解决方案中删除安装程序项目 界面
  2. 将安装程序项目重新添加到您的解决方案中(添加 > 现有项目...)
  3. 重建

它几乎每次都对我有用...

【讨论】:

  • 这对我也有用,尽管之后我必须修复桌面和程序菜单的快捷方式目标。
  • 是的,有时我必须重新链接一些东西,但这确实为我节省了大量时间和浪费的调试工作。 :)
  • 我不相信这种方法,但是,“删除错误的 .vdproj 然后再次添加现有的 .vdproj 项目”方法对我有用。
  • 刚刚在 Visual Studio 2010 中遇到了同样的问题,删除和添加安装项目对我来说非常适合
  • 与 Sandeep 相同的评论,不相信它会起作用,直到,繁荣就是它的全部。
【解决方案2】:

我通过手动编辑 vdproj 并删除 Hierachy 和 File 部分然后重建 vdproj 来解决此问题

见:Setup project error: Unable to update the dependencies of the project

【讨论】:

  • 我已经把外链的解决方案复制到这个帖子了。
  • 在没有建议的热链接的情况下,这对我有用。关闭VS,编辑vdproj文件,重新打开VS,项目第一次完美构建。
【解决方案3】:

这是从@timB33 的外部链接复制的,该链接有效。 MS 修补程序的所有链接似乎都已损坏,因此这是我能找到的唯一修复方法,而无需删除并重新创建安装项目。

我一直使用这种方法来解决这个错误,而不是重建我的设置项目。这适用于合并模块项目和设置项目。手动删除项目文件的 Hierarchy and Files 部分中的数据。

  1. 打开 .VDPROJ 文件

  2. 找到“层次结构”部分。删除所有内容,使该部分如下所示: “等级制度” { }

  3. 找到“文件”部分。删除所有内容,使该部分如下所示: “文件” { }

  4. 重新加载项目

  5. 重建项目。

  6. 如果缺少某些内容,您可能需要重新添加项目输出

【讨论】:

    【解决方案4】:

    这对我有用:

    1. 从 VS2010 运行一个干净的解决方案命令
    2. 在资源管理器中打开源代码文件夹
    3. 搜索 *.exe 文件,按位置排序
    4. 手动删除 Release 文件夹中的所有文件

    如果存在 some_project.vshost.exe 锁定文件,在 VS 中打开该项目的属性,并在调试下取消选中“启用 Visual Studio 托管进程”。然后也将其删除。现在应该可以构建了。

    【讨论】:

    • 要删除我锁定的文件,我关闭了 VS,删除,然后重新启动它。然而,这让我想知道,如果简单地重新启动 VS 就可以修复它(它有时会修复奇怪的错误......)
    【解决方案5】:

    hotfix 没有解决我电脑上的问题(在两台电脑上试过,重新启动所有爵士乐)

    相反,我使用源代码管理来确定我的 .vdproj 发生了什么。

    似乎在 .vdproj 的 "File" 部分中添加了额外的损坏条目。

    假设你得到一个错误,例如

    错误:无法更新项目的依赖关系。无法确定对象“AutoMapper.DLL”的依赖关系。

    在您的 .vdproj 中搜索 AutoMapper,您应该会遇到几个使用它的 { }。

    一个正常的看起来是这样的:

            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_263299FB43D185D41A44FBEE0253D3ED"
            {
            "AssemblyRegister" = "3:1"
            "AssemblyIsInGAC" = "11:FALSE"
            "AssemblyAsmDisplayName" = "8:AutoMapper, Version=1.1.0.188, Culture=neutral, PublicKeyToken=be96cd2c38ef1005, processorArchitecture=MSIL"
                "ScatterAssemblies"
                {
                    "_263299FB43D185D41A44FBEE0253D3ED"
                    {
                    "Name" = "8:AutoMapper.DLL"
                    "Attributes" = "3:512"
                    }
                }
            "SourcePath" = "8:AutoMapper.DLL"
    

    而损坏的块在 ScatterAssemblies 部分中缺少 dll 的名称(在本例中为 AutoMapper.DLL)。

    删除这个损坏的条目,即从"{9F6F8455-.. 开始到下一个块的整个部分。

    【讨论】:

    • 对我来说,这很有帮助,但还不够。然后我必须在解决方案资源管理器中打开检测到的依赖项,然后对列表中的所有 DLL 执行排除。之后,它就构建成功了。
    • 在解决马拉松合并冲突后,我突然出现了这个问题,我有两个带有空 ScatterAssemblies 部分的部分。删除并重新添加安装程序的答案并没有解决我的问题。
    【解决方案6】:

    support.microsoft.com/kb/2286556

    感谢 Hans,此更新解决了我的问题。

    【讨论】:

    • 感谢@BrainCoder - 我重新启动,然后在尝试构建 MSI 时出现 TFS 错误。一旦我签出 MSI 项目,它就开始工作了。 (如果你有 SP1,我猜你不需要修补程序)。
    • 修补程序链接已损坏
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-09
    • 1970-01-01
    • 2017-04-21
    • 2012-03-27
    • 2015-07-14
    • 2020-03-23
    • 1970-01-01
    相关资源
    最近更新 更多