7

Vì vậy, tôi sẽ đặt câu hỏi ban đầu của tôi, nhưng sau đó trả lời nó bởi vì tôi đã tìm thấy một giải pháp.Visual Studio 2015 Bản cập nhật 1 và XAML tạo mẫu

Vì gần đây tôi đã nâng cấp hộp dev của mình từ VS 2015 lên Bản cập nhật VS 2015 1, mẫu XAML tùy chỉnh của tôi gặp phải lỗi mà tôi dường như không gây ra. Tôi đã tự hỏi tại sao?

Việc xây dựng ngoại lệ nhất có thể được nhìn thấy và tôi thấy: Không thể thiết lập thành viên vô danh 'Microsoft.TeamFoundation.Build.Activities.RunScript.FailOnNonZeroExitCode' (loại XamlObjectWriterException)

+1

Rất vui khi bạn chia sẻ một vấn đề + giải pháp với cộng đồng, +1 người đàn ông, chào mừng bạn đến với SO. –

+0

Cảm ơn! Tôi ghét nó khi Microsoft lẻn vào công cụ như thế này và chúng tôi tìm ra vào những thời điểm thuận tiện nhất (tuần giao hàng ứng dụng). – adboll

Trả lời

18

Hóa ra Microsoft đã thực hiện một số loại thay đổi schema trong bản cập nhật VS 2015 1 thêm thuộc tính vào những gì tôi đã trải qua dưới dạng 4 dòng trong XAML sẽ phá vỡ các mẫu xây dựng tự động nếu chạy trình điều khiển và tác nhân xây dựng VS 2015. Không chắc chắn nếu điều khiển xây dựng có thể được cập nhật chưa tương xứng, nhưng đây là những gì tôi tìm thấy trong hai XAMLs:

tốt với không có tài sản thêm:

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

schema Thay đổi sử dụng Cập nhật 1 (cùng 4 dòng mã):

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

Giải pháp/hack nếu bạn không/không thể cập nhật build điều khiển:

  1. Hãy cha của bạn nges cho các mẫu và lưu chúng.
  2. Xóa 4 thuộc tính trong các dòng trên: FailOnNonZeroExitCode = "True"
  3. Lưu mà không thực hiện thêm thay đổi đối với XAML.
  4. Lặp lại quy trình nếu cần thay đổi khác.

Tôi sẽ kiểm tra xem liệu tôi có thể cập nhật trình điều khiển xây dựng của mình để cập nhật 1 để xem nó có khắc phục vĩnh viễn vấn đề này không và đăng lại.

+1

Bạn vừa mới cứu tôi rất nhiều thời gian ... – Nick

+0

Tôi nợ bạn bia! ;) –

+1

+1 Điều này không giải quyết được vấn đề của tôi, nhưng đã dẫn tôi đến giải pháp. VS 2015 thêm một số cruft vào TFS 2013 XAML xây dựng mẫu của tôi (có lẽ không nên làm điều đó anyway). –

Các vấn đề liên quan