xaml - Visual Studio 2015 Update 1 和 XAML 构建模板

标签 xaml templates visual-studio-2015 build-process custom-build

所以我要问我原来的问题,然后回答它,因为我找到了解决方案。

由于我最近将开发盒从 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)(&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" />

如果您不/无法更新构建 Controller ,解决方法/黑客:

  1. 对模板进行更改并保存。
  2. 删除上面几行中的 4 个属性:FailOnNonZeroExitCode="True"
  3. 保存而不对 XAML 进行进一步更改。
  4. 如果需要其他更改,请重复此过程。

我将测试是否可以将构建 Controller 更新为更新 1,看看它是否永久修复了此问题并发回。

关于xaml - Visual Studio 2015 Update 1 和 XAML 构建模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35043472/

相关文章:

c# - 单击按钮时隐藏弹出按钮 (DelegateCommand)

wpf - 在 xaml 中包含 xaml 元素

c++ - 模板函数不会编译

c++ - 范围内的模板变量或模板 typedef

visual-studio-2015 - .NET Core Web App 不会因异常而中断,并且异常中没有详细信息

c# - 从另一个页面更改文本 block 的文本

wpf - DataTrigger.ExistActions 未针对绑定(bind)值 "null"触发

c++ - 从智能指针确定类型

c# - Visual Studio 2015 断 Razor Intellisense

debugging - 编译错误 Sandboxie Open Source v5.40