【问题标题】:Visual Studio 2017 - ERROR: Unable to update the dependencies of the project (setup & deployment)Visual Studio 2017 - 错误:无法更新项目的依赖项(设置和部署)
【发布时间】:2019-12-12 22:38:15
【问题描述】:

某些原因导致我的 .vdproj 定期出现故障并且没有可识别的原因,导致错误消息“错误:无法更新项目的依赖项。对象的依赖项'来自 Cool 的主要输出程序(活动)'无法确定。”。这适用于使用 VisualSVN 插件和 Tortoise SVN 的 Visual Studio 2017 社区版 15.9.14。我还在使用 Eziriz .NET Reactor 进行代码保护。我用这个配置好 2 年没有问题。这种情况刚刚开始反复发生,所以一定是有什么东西发生了变化——要么是我的配置的一些小属性让它变得疯狂,要么是它不喜欢的环境中的一些东西。我只是不知道如何弄清楚它会是什么。唯一让我印象深刻的变化是,由于外部依赖,我不得不从 .NET 4.6 更改为 4.6.1。

设置和部署项目突然开始说找不到活动项目的依赖项。更令人困惑的是,昨天,我一整天做了 20 多次构建,然后它就莫名其妙地突然发生了。我没有打开或运行任何我记得的新程序,也没有关闭 VS 或更改环境中的任何内容。据我所知,这是自发的,没有任何相关的系统变化。似乎 Visual Studio 只是失去了理智。

我已阅读有关此错误的其他帖子(Compile Setup project with devenv.com - "ERROR: Unable to update the dependencies of the project""Unable to update dependencies of the project" after committing to Subversion),检查了我的 .vdproj,并在上次发生这种情况时尝试了不同的修复:

我尝试了什么

  1. 检查 .vdproj 并确认主项目的路径完整且正确;
  2. 从解决方案中删除 .vdproj,然后重新添加;
  3. 关闭并重新打开 VS;
  4. 清空 .vdproj 的层次结构和文件部分;
  5. 更新到最新版VS;
  6. 正在重启;
  7. 禁用性能监控和报告;
  8. 我认为我通过从安装项目中删除我的主要项目然后重新添加它来修复它,因此需要对文件布局、快捷方式等进行多次手动调整,但这是一个劳动密集型的解决方法,不是解决方案。结果证明它只是暂时起作用 - 问题又回来了。

2020 年 1 月 14 日更新

虽然下面提到的解决方法暂时有所帮助,但我始终无法解决此问题。它只是不断地回来。我的解决方案是完全放弃设置和部署项目并切换到 Inno Setup。我给你的建议是,如果你尝试了所有这些方法并且无法修复它,那么也这样做。

【问题讨论】:

    标签: visual-studio-2017 setup-deployment devenv


    【解决方案1】:

    我刚刚注意到同样的事情刚刚开始发生 - 也是在多年没有问题之后 - 并尝试了你提到的所有这些解决方案,但没有一个奏效。唯一的区别是我使用的是 VS 2019,但行为相同。

    在您的设置项目中,如果您右键单击“检测到的依赖项”文件夹并单击刷新依赖项,它可能会显示“操作无法完成”

    问题似乎发生了,因为如果安装项目的文件系统视图中没有所有文件都可见,则无法自动解决依赖关系。

    解决方法

    1. 右键单击您的设置项目名称>查看>文件系统
    2. 单击“目标计算机上的文件系统”中的“应用程序文件夹”。如果没有这一步,下面的步骤似乎不起作用。
    3. 返回“Cool Project 的主要输出(活动)”,右键单击并刷新依赖项
    4. 多次重复第 3 步,直到“应用程序文件夹”文件最终更新而没有错误(似乎每个都执行然后显示错误)
    5. 现在尝试重建您的项目
    6. 如果您仍然遇到问题,或者现在只是通过命令行构建遇到问题,请查看应用程序文件夹中的每个 DLL,并仔细检查它们的源位置和版本。您可能会发现这些文件指向旧版本,因此请将这些文件替换为新版本。

    【讨论】:

    • 谢谢,我下次试试。澄清一下,您使用的是 VisualSVN 还是 Eziriz .NET Reactor Automation 插件和/或 Tortoise SVN?
    • 只是 .NET Reactor,我认为它不会影响任何构建依赖项,因为它是在构建后事件中触发的
    • 又发生了。好消息是您的方法可以解决它,并且比手动重新添加项目输出要容易得多,再次感谢。为了将来参考,我在尝试刷新时多次遇到的错误是,“操作无法完成。发生异常。”
    • @scottaj:我被困在第 3 步。当我右键单击 Project 的主要输出(活动)时,上下文菜单中没有 Refresh Dependencies 选项) 目标计算机上的文件系统 应用程序文件夹。我看到 Refresh Dependencies 选项的唯一位置是在 Solution Explorer 中的安装程序项目下右键单击 Detected Dependencies 节点。我尝试了几次该选项,但它一直显示错误消息This operation could not be completed
    【解决方案2】:

    我尝试了此处列出的许多解决方案来修复我的安装项目。我还尝试了其他一些 Stack Overflow 问题中列出的内容。修复范围从以文本形式编辑项目文件一直到重新启动 Visual Studio。他们都没有工作。

    我一直在安装项目的文件系统视图中将主输出添加到应用程序文件夹。对于没有运行的安装项目,我通过 Add -> File 切换并添加了 .exe。安装项目现在编译,生成的 .msi 文件可以很好地安装。

    因此,虽然这不是配置安装项目的“正确”方式,但它在这种情况下可以解决我的特定错误。也许它也会解决您的特定错误。

    【讨论】:

    • 除 .exe 外,如果存在 .exe.config 文件,您还应添加该文件。我最终遇到了一些依赖项被遗漏的情况。添加 .exe.config 文件解决了这个问题。
    • 同样的事情发生在我身上,在使用主输出后(它正在工作)必须创建一个新的安装程序并从 bin\release 文件夹中添加文件。 VS更新时可能会发生如此脆弱的情况。没有时间回去证明这些东西
    • 这可能是我第三次回到自己的答案,看看我过去是如何解决这个问题的。它总是相同的 .exe 不起作用。这一次,我费心花一个小时学习 Inno Setup,而不是花一个小时敲打 Visual Studio。我在建议只是平底船并转移到 Inno Setup 的建议中呼应 OP @technonaut。有人应该对我的回答投反对票并对此评论投赞成票。
    【解决方案3】:

    只是补充上面所说的,我也遇到了同样的问题,尝试了一切。 我正在使用 Visual Studio 2019,实际上我收到了没有错误的警告:无法确定对象“Microsoft.SqlServer.SqlClrProvider.dll”的依赖关系 最后它说重建全部:2成功,0失败。 但它没有生成任何 msi 项目。 对我有用的是在安装项目中,右键单击,文件系统,在应用程序文件夹中,删除有问题的 dll,然后在安装项目中,右键单击检测到的依赖项,刷新依赖项。重建它就可以了。

    【讨论】:

      猜你喜欢
      • 2017-04-06
      • 2011-03-16
      • 1970-01-01
      • 2017-09-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多