【问题标题】:WPF/XAML Application Crashes when Blend not installed - Event Logs Attached未安装 Blend 时 WPF/XAML 应用程序崩溃 - 附加事件日志
【发布时间】:2017-11-01 20:30:38
【问题描述】:

以下是 WPF 应用程序的完整 XAML,没有代码隐藏。在安装了 Expression Blend 4 的计算机上,以下应用程序有效。但是,在没有 Blend 的机器上,应用程序会崩溃。这非常简单,但似乎 [i:Interaction.Behaviors] 部分是导致问题的原因,这是 Blend 中创建平滑动画的行为。

<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity" xmlns:ei="http://schemas.microsoft.com/expression/2010/interactions"
x:Class="WpfApplication12.MainWindow"
x:Name="Window"
Title="MainWindow"
Width="640" Height="480">

<Grid x:Name="LayoutRoot">
    <WrapPanel>
        <i:Interaction.Behaviors>
            <ei:FluidMoveBehavior AppliesTo="Children"/>
        </i:Interaction.Behaviors>
        <Rectangle Fill="#FFF4F4F5" Height="100" Stroke="Black" Width="100" Margin="10"/>
        <Rectangle Fill="#FFF4F4F5" Height="100" Stroke="Black" Width="100" Margin="10"/>
        <Rectangle Fill="#FFF4F4F5" Height="100" Stroke="Black" Width="100" Margin="10"/>
        <Rectangle Fill="#FFF4F4F5" Height="100" Stroke="Black" Width="100" Margin="10"/>
        <Rectangle Fill="#FFF4F4F5" Height="100" Stroke="Black" Width="100" Margin="10"/>
        <Rectangle Fill="#FFF4F4F5" Height="100" Stroke="Black" Width="100" Margin="10"/>
        <Rectangle Fill="#FFF4F4F5" Height="100" Stroke="Black" Width="100" Margin="10"/>
        <Rectangle Fill="#FFF4F4F5" Height="100" Stroke="Black" Width="100" Margin="10"/>
        <Rectangle Fill="#FFF4F4F5" Height="100" Stroke="Black" Width="100" Margin="10"/>
        <Rectangle Fill="#FFF4F4F5" Height="100" Stroke="Black" Width="100" Margin="10"/>
        <Rectangle Fill="#FFF4F4F5" Height="100" Stroke="Black" Width="100" Margin="10"/>
        <Rectangle Fill="#FFF4F4F5" Height="100" Stroke="Black" Width="100" Margin="10"/>
        <Rectangle Fill="#FFF4F4F5" Height="100" Stroke="Black" Width="100" Margin="10"/>
        <Rectangle Fill="#FFF4F4F5" Height="100" Stroke="Black" Width="100" Margin="10"/>
        <Rectangle Fill="#FFF4F4F5" Height="100" Stroke="Black" Width="100" Margin="10"/>
        <Rectangle Fill="#FFF4F4F5" Height="100" Stroke="Black" Width="100" Margin="10"/>
        <Rectangle Fill="#FFF4F4F5" Height="100" Stroke="Black" Width="100" Margin="10"/>
        <Rectangle Fill="#FFF4F4F5" Height="100" Stroke="Black" Width="100" Margin="10"/>
    </WrapPanel>
</Grid>

【问题讨论】:

  • 删除日志/输出,因为它不需要解析;如果您觉得不合适,我们可以将其重新添加。

标签: wpf xaml .net-4.0 expression-blend


【解决方案1】:

您应该在您的应用程序中发送System.Windows.Interactivity.dll。转到项目引用中该 DLL 的属性并将Copy Local 属性设置为True。之后,这个程序集将被复制到项目的输出文件夹中。

【讨论】:

  • 感谢您的快速回复。我看到列出的 System.Windows.Interactivity.dll 的唯一位置是在“项目”下。如果我右键单击它,我看到的唯一选项是“从项目中删除”。我应该去哪里看?
  • 右键单击它,然后单击“属性”。并在属性中查找“复制本地”。
  • 没有“属性”选项。我正在使用 Expression Blend 4。
  • 你应该使用 Visual Studio。 Blend 可能没有这个选项。
  • 也就是说这个问题没有办法解决,因为我没有Visual Studio?
【解决方案2】:

您需要包含System.Windows.Interactivity.dll,它位于(Blend 3 pathing)...Program Files\Microsoft SDKs\Expression\Blend 3\Interactivity\Libraries\WPF

按照(Blend 3 路径)...Program Files\Microsoft SDKs\Expression\Blend 3\Redist.en.txt 的定义,该文件是可再分发的

【讨论】:

  • Aaron,是否可以在 Expression Blend 4 中实现这一点?如果不是,并且需要 Visual Studio,接下来的步骤是什么?是否可以将它们编译成可执行文件,或者它们必须始终是单独的 .dll 文件?
  • @Beems 看来您收到了解决方案,但其中任何一个都不需要 Visual Studio,因为可以在上述路径中引用所需的 DLL……包括 Microsoft.Expression.Interactions.dll。 Visual Studio 的所有工作都围绕着将 DLL 移动到工作目录,这可以通过在 Expression SDK 目录中获取 DLL 来完成。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-03-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-03
  • 1970-01-01
  • 2012-11-15
相关资源
最近更新 更多