构建VS 2013安装项目时,输出中的消息重复

cos*_*sta 19 setup-project c#-4.0 visual-studio-2013

我有一个VS2013安装项目,它构建安装由两个C#项目生成的exes的设置.当我构建安装项目时,我得到重复的消息,好像有两个构建过程.我从安装项目的输出中删除了两个exes中的一个,但我仍然得到重复的消息.

------ 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'...
................
Run Code Online (Sandbox Code Playgroud)

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

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

谢谢

只是更新:我在notepad ++中打开了vdproj,并删除了"Configurations"下的Debug配置.构建项目,不再有重复的消息.我以为这解决了它.是否有其他重建和重复项.

MZB*_*MZB 9

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

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

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

我怀疑在IDE工具/选项/项目和解决方案/构建和运行中更改最大并行构建数也将起作用:

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

  • 2019 年 12 月和 VS 2019 的问候...它仍然没有修复! (2认同)
  • 2022 年 2 月 - 仍然是一个问题。 (2认同)

小智 0

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

看来您的 MSBuild 设置为重复输出,这很容易更改,您可以点击链接获取更多信息。

保留重复输出

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

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

<!-- To modify your build process...
  <Target Name="BeforeBuild">
  </Target>
  <Target Name="AfterBuild">
  </Target>
  -->
Run Code Online (Sandbox Code Playgroud)

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