XAML 解析异常 - 可以在应用程序的调试版本中找到附加的 属性,但在 release/installed 版本中找不到

XAML parse exception - can find attached property in the debug version of the app, but not in release/installed version

我收到了一个附件 属性 喜欢:

namespace Project.Controls.MyControl
{
    public static class Transform
    {
        public static readonly DependencyProperty RelativeOffsetXProperty = DependencyProperty.RegisterAttached(
            "RelativeOffsetX",
            typeof(double),
            typeof(Transform),
            new PropertyMetadata(
                default(double),
                OnRelativeOffsetXChanged));

        // ...
    }
}

用法如下:

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                    xmlns:local="clr-namespace:Project.Controls.MyControl">
    <Style TargetType="{x:Type local:MyControl}">
        <Style.Resources>
            <ResourceDictionary>
                <ResourceDictionary.MergedDictionaries>
                    <ResourceDictionary Source="pack://application:,,,/Controls/MyControl/IndexItemStyle.xaml" />
                    <ResourceDictionary Source="pack://application:,,,/Controls/MyControl/ArrowButtonStyle.xaml" />
                    <ResourceDictionary Source="pack://application:,,,/Controls/MyControl/MyControlTemplate.xaml" />
                </ResourceDictionary.MergedDictionaries>
            </ResourceDictionary>
        </Style.Resources>
        
        <!--  more code -->

        <Setter Property="IncreaseInAnimation">
            <Setter.Value>
                <Storyboard>
                    <!-- more code -->
                    <DoubleAnimation BeginTime="0:0:0"
                                     FillBehavior="HoldEnd"
                                     Storyboard.TargetProperty="(local:Transform.RelativeOffsetX)"
                                     From="1"
                                     To="0"
                                     Duration="0:0:0.3" />
                </Storyboard>
            </Setter.Value>
        </Setter>
    </Style>
</ResourceDictionary>

这在调试时效果很好,没有问题。但是在安装应用程序的生产版本时,它在启动时崩溃并出现以下异常:

Type reference cannot find type named '{clr-namespace:Project.Controls.MyControl;assembly=Project, Version=X.X.X.0, Culture=neutral, PublicKeyToken=XXXX}Transform'

有没有人知道是什么原因导致的或一些关于如何调试它的提示?这个错误完全没有意义,尤其是在调试中一切正常。

注意:一切都在同一个程序集中。

原来这个问题与WPF无关。我们使用的混淆器只是优化了这个 class 。解决方案是将此文件从混淆中排除。