【问题标题】:Duplicate messages in output when building VS 2013 setup project构建 VS 2013 安装项目时输出中的重复消息
【发布时间】:2014-10-28 00:52:06
【问题描述】:

我有一个 VS2013 安装项目,它构建了安装由两个 C# 项目生成的 exe 的安装程序。当我构建设置项目时,我会收到重复的消息,就好像有两个构建过程一样。我从安装项目的输出中删除了两个 exe 之一,但仍然收到重复的消息。

------ Starting pre-build validation for project 'SetupWindowsService' ------ 
------ Starting pre-build validation for project 'SetupWindowsService' ------ 
------ Pre-build validation for project 'SetupWindowsService' completed ------
------ Pre-build validation for project 'SetupWindowsService' completed ------
2>------ Build started: Project: SetupWindowsService, Configuration: Release ------
2>------ Build started: Project: SetupWindowsService, Configuration: Release ------
Building file 'C:\projects\SetupTESTWindowsService\Release\SetupWindowsService.msi'...
Building file 'C:\projects\SetupTESTWindowsService\Release\SetupWindowsService.msi'...
Packaging file 'MoreLinq.dll'...
Packaging file 'MoreLinq.dll'...
Packaging file 'System.Web.Razor.dll'...
Packaging file 'System.Web.Razor.dll'...
................

所有的 dll 依赖都是重复的。构建项目的输出是好的(即 msi 文件)。 TargetPlatform 是 x86。在配置管理器中,Active 解决方案平台是 Any CPU,Active 解决方案配置是 Release。 setup项目所依赖的所有项目都是Release/Any CPU。

这正常吗?我正在使用在 Win 7 64 位 Ultimate 上运行的 VS 2013 Premium Update 3。

谢谢

只是一个更新:我在 notepad++ 中打开了 vdproj,并删除了“配置”下的调试配置。构建项目,不再有重复的消息。我以为解决了。进行了另一次重建,副本又回来了。

【问题讨论】:

  • 我正在尝试从 Visual Studio 2010 迁移到 Visual Studio 2013 并且遇到了同样的问题。你找到解决办法了吗?当它在 Visual Studio 2010 中没有发生时,我不满足于认为这是正常的。
  • 经过进一步调查,我发现在加载安装程序项目后第一次构建时没有重复项。但是在随后的构建中,尤其是在切换配置之后,我得到了重复、三次等。似乎 Visual Studio 对项目的记忆中存在某些东西,使其认为这些构建步骤需要多次执行。
  • 我也有同样的问题。我真的不知道它是从哪个版本开始的,但我现在使用的是 2015 RC,它仍在发生。
  • 也发生在我身上,使用 2015 CE。有点担心。
  • 迈克尔·雷普奇。我看一样。这个问题在Visual Studio 2019中依然存在。没有任何错误,但很烦人,四年后我仍然找不到这个问题的根本原因。如果我做错了什么或者是某种错误,我仍然不清楚。

标签: c#-4.0 visual-studio-2013 setup-project


【解决方案1】:

我认为这是 Visual Studio 或其构建过程中的错误。

我在 VS2015 上遇到了同样的问题; IDE 有时会启动多个任务来构建相同的设置项目。一旦它开始这样做,它只会变得更糟。如果我继续,我可以获得三个尝试相同构建的任务,有时这些任务会相互作用并导致其中一个失败。

我发现的最简单的解决方法是简单地退出并重新加载整个 IDE。

我怀疑在 IDE 工具/选项/项目和解决方案/构建和运行中更改并行构建的最大数量也可以:

https://msdn.microsoft.com/en-us/library/y0xettzf%28v=vs.90%29.aspx

【讨论】:

  • 我做了一个实验,将最大并行构建数设置为 1,但它似乎不起作用。在第二次重建后,我仍然看到此消息 - 为项目“SetupXXXXWindowsService”启动预构建验证 - 两次。很烦人,这么多年后这个问题仍然存在,更烦人的是我无法弄清楚我是否做错了,或者这是安装项目或 Visual Studio 中的错误
  • 您好,从 2019 年 12 月和 VS 2019 开始......它仍然没有修复!
  • 2022 年 2 月 - 仍然是个问题。
【解决方案2】:

为什么在使用 VS 2013 编译 Visual Studio 项目时,DLL 会出现重复的输出?这是我对您的问题的看法,没有看到您的 *.csproj 文件。

您的 MSBuild 似乎设置为重复输出,这很容易更改,您可以点击链接了解更多信息。

KeepDuplicateOutputs

这是一个“可选布尔属性” 如果为真,则记录目标返回中对同一项目的多次引用。

但是,默认情况下,此属性为 false。在没有看到您的项目的情况下,使用记事本或类似工具打开您的 *.csproj 并向下滚动到底部,以下是我的 VS 2015 社区 IDE 中的默认设置。进行更改以试验您的输出。

<!-- To modify your build process...
  <Target Name="BeforeBuild">
  </Target>
  <Target Name="AfterBuild">
  </Target>
  -->

如果这回答了您的问题,请将其标记为已回答,非常感谢(恳求的声音)。

【讨论】:

  • 将此标志显式设置为 false 似乎没有帮助(哦,好吧,因为默认值为 false)。在我们在 VS 中为两个项目启用“多个启动项目”后,我最近开始看到这个问题。有趣的是,我第一个项目没有这个问题,但只有第二个。
【解决方案3】:

将启动条件.NET框架版本更改为:

.NET Framework 4

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-18
    • 2012-08-13
    • 2020-10-15
    相关资源
    最近更新 更多