Дублирование сообщений в результатах при создании проекта установки 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