【问题标题】:How can I force VS 2008 Deployment Project to install two different versions of the same file in two different places?如何强制 VS 2008 部署项目在两个不同的地方安装同一文件的两个不同版本?
【发布时间】:2011-03-11 04:52:22
【问题描述】:

一些背景: 我有一个 VS 2008 部署项目我没有使用项目输出,我直接添加程序集文件,因为我们有第三方许可和混淆工具,我们在构建它们后在程序集上运行它们。此部署项目中还包括一个带有示例的帮助目录。

其中一个示例是一个 C# 项目,它引用了主程序中的一些程序集。我们包含此示例项目的 bin\Release 文件夹,以便最终用户可以轻松运行该示例,而无需通过调试器或任何其他工具运行该示例。这可能包含旧版本的主项目程序集,因为这取决于上次构建示例项目的时间。

问题: 示例项目引用的主要项目程序集包含在示例的 bin\Release 文件夹中,并且在部署项目的应用程序目录中存在同名但不同版本的程序集。 VS 2008 似乎试图通过识别这些文件具有相同的名称来最小化空间,因此它存储一个副本。但是,它使用的是示例中的文件,而不是主项目中的文件。有没有办法告诉VS每次都使用指定的文件,即使可能有另一个同名的文件?

【问题讨论】:

  • 您是否将示例安装到不同的目录?应用程序目录不是不同的目录。
  • 我尝试只更新示例项目中的引用,似乎应用程序目录中的程序集没有改变。也许是VS存储了你添加的确切文件,并且在你重建项目时没有得到新文件?
  • 应用程序目录'bin'和'help'有两个目录,示例在'help'目录,主应用程序在'bin'。

标签: visual-studio-2008 deployment assemblies mismatch


【解决方案1】:

事实证明,当您将程序集添加到部署项目时,VS 会自动添加其依赖项。但是,在重建这些依赖项时,这些依赖项永远不会更新(它将始终使用与您首次添加需要这些依赖项的程序集时相同的版本)。

我必须排除依赖项(因为 VS 不允许您删除它们)并手动添加这些相同的文件。现在,每次我进行构建时,我都会获得这些文件的最新版本。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-10
    • 2021-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多