7

Так что я собираюсь задать свой первоначальный вопрос, но затем ответьте на него, потому что я нашел решение.Visual Studio 2015 Update 1 и шаблоны сборки XAML

С тех пор как я недавно обновил свой бокс для разработчиков от VS 2015 до версии VS 2015 Update 1, мой пользовательский шаблон XAML обнаружил ошибку, которую я, похоже, не вызывал. Мне было интересно, почему?

Исключение сборки наиболее может видеть, и я видел: Невозможно установить неизвестный элемент «Microsoft.TeamFoundation.Build.Activities.RunScript.FailOnNonZeroExitCode» (тип XamlObjectWriterException)

+1

Прохладный, чтобы поделиться проблемой + решение с сообществом, +1 человек, добро пожаловать в SO. –

+0

Спасибо! Я ненавижу это, когда Microsoft прокрадывается в это, и мы узнаем в самое удобное время (неделю доставки приложения). – adboll

ответ

18

Оказывается, Microsoft сделала какое-то изменение схемы в обновлении VS 2015, которое добавляет свойство к тому, что я испытал как 4 строки в XAML, который разбивает автоматические шаблоны сборки, если работает контроллер сборки VS 2015 и агент (ы). Не уверен, что если контроллер сборки может быть обновлен еще, чтобы соответствовать, но вот что я нашел в двух XAMLs:

Хорошо без дополнительного имущества:

<mtba:RunScript Arguments="[AdvancedBuildSettings.GetValue(Of String)(&quot;PreActionScriptArguments&quot;, String.Empty)]" DisplayName="Run optional script before MSBuild" Enabled="True" FilePath="[AdvancedBuildSettings.GetValue(Of String)(&quot;PreActionScriptPath&quot;, String.Empty)]" sap2010:WorkflowViewState.IdRef="RunScript_1" /> 
<mtba:RunScript Arguments="[AdvancedBuildSettings.GetValue(Of String)(&quot;PostActionScriptArguments&quot;, String.Empty)]" DisplayName="Run optional script after MSBuild" Enabled="True" FilePath="[AdvancedBuildSettings.GetValue(Of String)(&quot;PostActionScriptPath&quot;, String.Empty)]" sap2010:WorkflowViewState.IdRef="RunScript_2" /> 
<mtba:RunScript Arguments="[AdvancedTestSettings.GetValue(Of String)(&quot;PreActionScriptArguments&quot;, String.Empty)]" DisplayName="Run optional script before Test Runner" Enabled="True" FilePath="[AdvancedTestSettings.GetValue(Of String)(&quot;PreActionScriptPath&quot;, String.Empty)]" sap2010:WorkflowViewState.IdRef="RunScript_3" /> 
<mtba:RunScript Arguments="[AdvancedTestSettings.GetValue(Of String)(&quot;PostActionScriptArguments&quot;, String.Empty)]" DisplayName="Run optional script after Test Runner" Enabled="True" FilePath="[AdvancedTestSettings.GetValue(Of String)(&quot;PostActionScriptPath&quot;, String.Empty)]" sap2010:WorkflowViewState.IdRef="RunScript_4" /> 

Измененной схема с использованием обновлением 1 (та же 4 линии кода):

<mtba:RunScript Arguments="[AdvancedBuildSettings.GetValue(Of String)(&quot;PreActionScriptArguments&quot;, String.Empty)]" DisplayName="Run optional script before MSBuild" Enabled="True" FailOnNonZeroExitCode="True" FilePath="[AdvancedBuildSettings.GetValue(Of String)(&quot;PreActionScriptPath&quot;, String.Empty)]" sap2010:WorkflowViewState.IdRef="RunScript_1" /> 
<mtba:RunScript Arguments="[AdvancedBuildSettings.GetValue(Of String)(&quot;PostActionScriptArguments&quot;, String.Empty)]" DisplayName="Run optional script after MSBuild" Enabled="True" FailOnNonZeroExitCode="True" FilePath="[AdvancedBuildSettings.GetValue(Of String)(&quot;PostActionScriptPath&quot;, String.Empty)]" sap2010:WorkflowViewState.IdRef="RunScript_2" /> 
<mtba:RunScript Arguments="[AdvancedTestSettings.GetValue(Of String)(&quot;PreActionScriptArguments&quot;, String.Empty)]" DisplayName="Run optional script before Test Runner" Enabled="True" FailOnNonZeroExitCode="True" FilePath="[AdvancedTestSettings.GetValue(Of String)(&quot;PreActionScriptPath&quot;, String.Empty)]" sap2010:WorkflowViewState.IdRef="RunScript_3" /> 
<mtba:RunScript Arguments="[AdvancedTestSettings.GetValue(Of String)(&quot;PostActionScriptArguments&quot;, String.Empty)]" DisplayName="Run optional script after Test Runner" Enabled="True" FailOnNonZeroExitCode="True" FilePath="[AdvancedTestSettings.GetValue(Of String)(&quot;PostActionScriptPath&quot;, String.Empty)]" sap2010:WorkflowViewState.IdRef="RunScript_4" /> 

Обход/взломать, если вы не/не может обновить контроллер сборки:

  1. Сделайте свой тя nges к шаблонам и сохранить их.
  2. Удалите 4 свойства в приведенных выше строках: FailOnNonZeroExitCode = "True"
  3. Сохраните, не внося дальнейшие изменения в XAML.
  4. Повторите процесс, если требуется другое изменение.

Я буду тестировать, могу ли я обновить наш контроллер сборки, чтобы обновить 1, чтобы проверить, исправляет ли он эту проблему и отправляет обратно.

+1

Ты только что сэкономил мне много времени ... – Nick

+0

Я должен тебе пиво! ;) –

+1

+1 Это не решило мою проблему, но привело меня к решению. VS 2015 добавил некоторый треск к моему шаблону сборки XFSL TFS 2013 (вероятно, этого не должно быть так или иначе). –