Дублирование сообщений в результатах при создании проекта установки VS 2013

У меня есть проект установки VS2013, который строит установку, которая устанавливает 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'...
................

Все зависимости dlls дублируются. Результат, полученный в результате создания проекта, в порядке (т.е. Файл msi). TargetPlatform - x86. В диспетчере конфигурации активной платформой решений является любой процессор, а активная конфигурация решения - Release. Все проекты, от которых зависит проект установки, это Release/Any CPU.

Это нормально? Я использую VS 2013 Premium Update 3, работающий на Win 7 64-bit Ultimate.

Спасибо

Просто обновление: я открыл vdproj в блокноте ++, и я удалил конфигурацию Debug в разделе "Конфигурации". Построил проект, и больше не было дублированных сообщений. Я думал, что это решило. Еще одна перезапись и дубликаты вернулись.

Ответы

Ответ 1

Я думаю, что это ошибка в Visual Studio или ее процесс сборки.

Я получаю ту же проблему с VS2015; иногда IDE запускает несколько задач для создания одного и того же проекта установки. Как только он начал это делать, он только ухудшается. Если я продолжу, я могу получить три задачи, пытающихся выполнить одну и ту же сборку, и иногда эти задачи взаимодействуют и приводят к сбою одного из них.

Самое легкое обходное решение, которое я нашел, - просто выйти и перезагрузить всю среду IDE.

Я подозреваю, что изменение максимального количества параллельных сборок в IDE Tools/Options/Projects и Solutions/Build и Run также будет работать:

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

Ответ 2

Почему существуют дублированные выходы из DLL при компиляции проектов Visual Studio с использованием VS 2013? Это мой вопрос по вашему вопросу, не видя ваш файл *.csproj.

Кажется, что ваш MSBuild настроен на дублирование выходов, это легко изменить, и вы можете перейти по ссылке для получения дополнительной информации.

KeepDuplicateOutputs

Это "Необязательный логический атрибут", Если это правда, записываются несколько ссылок на один и тот же элемент в целевом возврате.

Однако по умолчанию этот атрибут является ложным. Не видя своего проекта, откройте свой *.csproj, используя блокнот или аналогичный, и прокрутите вниз до нижнего уровня, в моей среде VS 2015 Community IDE указано значение по умолчанию. Внесите изменения в эксперимент с вашим выходом.

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

Если это ответили на ваш вопрос, отметьте его как ответ, пожалуйста, пожалуйста (умоляющий голос).

Ответ 3

Измените условия запуска .NET Framework как:

.NET Framework 4