7

Così ho intenzione di porre la mia domanda iniziale, ma poi rispondo perché ho trovato una soluzione.Visual Studio 2015 Update 1 e modelli di build XAML

Poiché recentemente ho aggiornato il mio box di sviluppo da VS 2015 a VS 2015 Update 1, il mio modello XAML personalizzato ha riscontrato un errore che non sembra causare. Mi stavo chiedendo perché?

L'eccezione di build più può essere visto e ho visto: Impossibile impostare 'Microsoft.TeamFoundation.Build.Activities.RunScript.FailOnNonZeroExitCode' (tipo XamlObjectWriterException) sconosciuto membro

+1

Cool di te per condividere un problema + soluzione con la comunità, +1 uomo, benvenuto in SO. –

+0

Grazie! Lo odio quando Microsoft si intrufola in questo modo e lo scopriamo nei momenti più convenienti (settimana di consegna app). – adboll

risposta

18

Risulta Microsoft ha fatto una sorta di modifica dello schema nell'aggiornamento 1 di VS 2015 che aggiunge una proprietà a ciò che ho sperimentato come 4 righe nello XAML che interromperà i modelli di build automatici se si esegue un controllore di build e un agente VS 2015. Non sono sicuro se il controller di compilazione può essere aggiornato ancora da corrispondere, ma qui è quello che ho trovato nei due XAMLs:

Buono con alcuna proprietà supplementari:

<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" /> 

cambiato schema utilizzando Update 1 (stesse 4 linee di codice):

<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" /> 

Soluzione/incidere, se non lo fai/non è possibile aggiornare controller di compilazione:

  1. Fai la tua cha cerca i modelli e salvali.
  2. Rimuovere le 4 proprietà nelle righe precedenti: FailOnNonZeroExitCode = "True"
  3. Salvare senza apportare ulteriori modifiche a XAML.
  4. Ripetere il processo se è necessaria un'altra modifica.

Verificherò per vedere se riesco ad aggiornare il nostro controller di build per aggiornare 1 per vedere se risolve in modo permanente questo problema e postback.

+1

Mi hai appena risparmiato un sacco di tempo ... – Nick

+0

Ti devo la birra! ;) –

+1

+1 Questo non ha risolto il mio problema, ma mi ha portato alla soluzione. VS 2015 ha aggiunto del cruft al mio modello di build XAML TFS 2013 (probabilmente non dovrebbe farlo comunque). –

Problemi correlati