Сотни экземпляров MSBuild публикуются в Интернете, а затем зависают

Я использую Visual Studio 2015 Update 3 с несколькими решениями для веб-проектов, в которых используется процесс публикации файловой системы. Это работало хорошо в течение долгого времени до прошлой недели, когда каждый раз, когда я пытаюсь опубликовать любой вид — будь то выпускная сборка решения или ручной выбор параметра публикации проекта, MSBuild.exe запустится и затем сотни из них захватывают систему вместе с conhost.exe и cmd.exe (похожее количество каждого из них). Смотрите скриншот ниже. Папка никогда не публикуется, и самое долгое время, которое я позволял ей запускать, составляло около часа, после чего я не мог отменить сборку и должен был перезагрузиться. Я даже пытался восстановить Visual Studio, но потом обнаружил, что это происходит на двух других машинах, но не на четвертом. Мы используем разные версии ОС (Windows 7 и Windows 10), но все используют одну и ту же версию Visual Studio. Мы все перезагружались несколько раз. Это работало хорошо совсем недавно, 11 октября (последний четверг), начало появляться 12 октября, и с тех пор я борюсь с этим. Сам процесс публикации не изменился, равно как и свойства проекта для любого из этих веб-проектов.

введите здесь описание изображения

Вот как выглядит один из pubxml:

<?xml version="1.0" encoding="utf-8"?>
<!--
This file is used by the publish/package process of your Web project. You can customize the behavior of this process
by editing this MSBuild file. In order to learn more about this please visit http://go.microsoft.com/fwlink/?LinkID=208121. 
-->
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <WebPublishMethod>FileSystem</WebPublishMethod>
    <LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
    <LastUsedPlatform>Any CPU</LastUsedPlatform>
    <SiteUrlToLaunchAfterPublish />
    <LaunchSiteAfterPublish>False</LaunchSiteAfterPublish>
    <ExcludeApp_Data>False</ExcludeApp_Data>
    <publishUrl>$(MSBuildThisFileDirectory)..\..\PublishWebServiceToFileSystem</publishUrl>
    <DeleteExistingFiles>True</DeleteExistingFiles>
  </PropertyGroup>
</Project>

Я видел похожий пост, но он был связан с изменением часового пояса, и, насколько я знаю, никто из нас не делал таких изменений. Может ли кто-нибудь дать совет, как устранить неполадки с чем-то вроде этого?

ТИА


person VG1    schedule 16.10.2018    source источник
comment
Невозможно отладить вашу проблему, если вы не предоставляете нам код для проверки. Эта группа свойств, которую вы вставили, бесполезна, поскольку она не содержит целей сборки.   -  person C Johnson    schedule 17.10.2018


Ответы (1)


Я считаю, что теперь это решено и связано с использованием SignTool в PostBuildEvent. Поскольку наш автоматизированный процесс сборки требует публикации, у нас также был вызов публикации msbuild в том же PostBuildEvent после подписания dll. Мы думаем, что во время публикации он увидит событие после сборки и попытается подписать dll, которая уже была подписана. Я не на 100% уверен, что это была проблема, но удаление подписи остановило поведение, вернув его обратно, поведение возобновилось, поэтому доказательства указывают в этом направлении.

Что я сделал, чтобы решить эту проблему, так это изменил команду публикации, где /p:PostBuildEvent= был добавлен к существующему оператору:

if $(ConfigurationName) == Release ("$(MSBuildBinPath)\msbuild.exe" 
"$(ProjectPath)" /p:Configuration=Release /p:DeployOnBuild=true 
/p:PublishProfile=PublishWebSiteToFileSystem /p:VisualStudioVersion=14.0 
/p:PostBuildEvent=)

Еще раз спасибо всем, кто взглянул на это. Надеюсь, это поможет кому-то еще в будущем.

person VG1    schedule 18.10.2018