问题
I have a VS2013 setup project that builds the setup that installs the exes produced by two C# projects. When I build the setup project I get duplicate messages as if there are two build processes. I removed one of the two exes from the output of the setup project but I still get the duplicate messages.
------ 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'...
................
All the dlls dependencies are duplicated. The output that results from building the project is ok (i.e. the msi file). The TargetPlatform is x86. In the configuration Manager the Active solution platform is Any CPU and the Active solution configuration is Release. All the projects that the setup project depends on are Release/Any CPU.
Is this normal? I am using VS 2013 Premium Update 3 running on Win 7 64 bit Ultimate.
Thanks
Just an update: I opened the vdproj in notepad++ and I removed the Debug configuration under "Configurations". Built the project and there were no duplicate messages anymore. I thought that solved it. Did another rebuild and the duplicates are back.
回答1:
I think this is a bug in Visual Studio or its build process.
I get the same issue with VS2015; occasionally the IDE will start multiple tasks to build the same setup project. Once it has started doing this, it only gets worse. If I continue, I can get three tasks attempting the same build, and sometimes these tasks interact and cause one of them to fail.
The easiest workaround I've found is to simply exit and reload the entire IDE.
I suspect changing the maximum number of parallel builds in the IDE Tools/ Options/ Projects and Solutions / Build and Run will also work:
https://msdn.microsoft.com/en-us/library/y0xettzf%28v=vs.90%29.aspx
回答2:
Why are there duplicate outputs from DLLs, when compiling Visual Studio Projects using VS 2013? This is my take on your question, without seeing your *.csproj file.
It appears that your MSBuild is set to duplicate outputs, this is easily changed, and you can follow the link for more information.
KeepDuplicateOutputs
This is an "Optional Boolean attribute" If it is true, multiple references to the same item in the target's Returns are recorded.
However, by default, this attribute is false. Without seeing your project, open your *.csproj using notepad or similar and scroll down to the bottom, the following is the default in my VS 2015 Community IDE. Make the changes to experiment with your output.
<!-- To modify your build process...
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
If this answered your question, please mark it as answerd, pretty please (pleading voice).
回答3:
Change the launch condition .NET framework version as :
.NET Framework 4
来源:https://stackoverflow.com/questions/26599224/duplicate-messages-in-output-when-building-vs-2013-setup-project