所以我要问我原来的问题,然后回答它,因为我找到了解决方案。
由于我最近将开发盒从 VS 2015 升级到 VS 2015 Update 1,我的自定义 XAML 模板遇到了一个似乎不是我引起的错误。我想知道为什么?
大多数人可能会看到的构建异常,我看到了: 无法设置未知成员“Microsoft.TeamFoundation.Build.Activities.RunScript.FailOnNonZeroExitCode”(类型 XamlObjectWriterException)
最佳答案
事实证明,微软在 VS 2015 update 1 中进行了某种架构更改,在我所经历的 XAML 中的 4 行中添加了一个属性,如果运行 VS 2015 构建 Controller 和代理,这将破坏自动构建模板。不确定构建 Controller 是否可以更新以匹配,但这是我在两个 XAML 中发现的内容:
很好,没有额外的属性:
<mtba:RunScript Arguments="[AdvancedBuildSettings.GetValue(Of String)("PreActionScriptArguments", String.Empty)]" DisplayName="Run optional script before MSBuild" Enabled="True" FilePath="[AdvancedBuildSettings.GetValue(Of String)("PreActionScriptPath", String.Empty)]" sap2010:WorkflowViewState.IdRef="RunScript_1" />
<mtba:RunScript Arguments="[AdvancedBuildSettings.GetValue(Of String)("PostActionScriptArguments", String.Empty)]" DisplayName="Run optional script after MSBuild" Enabled="True" FilePath="[AdvancedBuildSettings.GetValue(Of String)("PostActionScriptPath", String.Empty)]" sap2010:WorkflowViewState.IdRef="RunScript_2" />
<mtba:RunScript Arguments="[AdvancedTestSettings.GetValue(Of String)("PreActionScriptArguments", String.Empty)]" DisplayName="Run optional script before Test Runner" Enabled="True" FilePath="[AdvancedTestSettings.GetValue(Of String)("PreActionScriptPath", String.Empty)]" sap2010:WorkflowViewState.IdRef="RunScript_3" />
<mtba:RunScript Arguments="[AdvancedTestSettings.GetValue(Of String)("PostActionScriptArguments", String.Empty)]" DisplayName="Run optional script after Test Runner" Enabled="True" FilePath="[AdvancedTestSettings.GetValue(Of String)("PostActionScriptPath", String.Empty)]" sap2010:WorkflowViewState.IdRef="RunScript_4" />
使用更新 1 更改架构(相同的 4 行代码):
<mtba:RunScript Arguments="[AdvancedBuildSettings.GetValue(Of String)("PreActionScriptArguments", String.Empty)]" DisplayName="Run optional script before MSBuild" Enabled="True" FailOnNonZeroExitCode="True" FilePath="[AdvancedBuildSettings.GetValue(Of String)("PreActionScriptPath", String.Empty)]" sap2010:WorkflowViewState.IdRef="RunScript_1" />
<mtba:RunScript Arguments="[AdvancedBuildSettings.GetValue(Of String)("PostActionScriptArguments", String.Empty)]" DisplayName="Run optional script after MSBuild" Enabled="True" FailOnNonZeroExitCode="True" FilePath="[AdvancedBuildSettings.GetValue(Of String)("PostActionScriptPath", String.Empty)]" sap2010:WorkflowViewState.IdRef="RunScript_2" />
<mtba:RunScript Arguments="[AdvancedTestSettings.GetValue(Of String)("PreActionScriptArguments", String.Empty)]" DisplayName="Run optional script before Test Runner" Enabled="True" FailOnNonZeroExitCode="True" FilePath="[AdvancedTestSettings.GetValue(Of String)("PreActionScriptPath", String.Empty)]" sap2010:WorkflowViewState.IdRef="RunScript_3" />
<mtba:RunScript Arguments="[AdvancedTestSettings.GetValue(Of String)("PostActionScriptArguments", String.Empty)]" DisplayName="Run optional script after Test Runner" Enabled="True" FailOnNonZeroExitCode="True" FilePath="[AdvancedTestSettings.GetValue(Of String)("PostActionScriptPath", String.Empty)]" sap2010:WorkflowViewState.IdRef="RunScript_4" />
如果您不/无法更新构建 Controller ,解决方法/黑客:
- 对模板进行更改并保存。
- 删除上面几行中的 4 个属性:FailOnNonZeroExitCode="True"
- 保存而不对 XAML 进行进一步更改。
- 如果需要其他更改,请重复此过程。
我将测试是否可以将构建 Controller 更新为更新 1,看看它是否永久修复了此问题并发回。
关于xaml - Visual Studio 2015 Update 1 和 XAML 构建模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35043472/