仅在XAML中使用的程序集不会复制到bin文件夹

NS.*_*.X. 11 msbuild wpf xaml copy-local

在WPF项目中,只有在XAML中使用的引用不被复制到bin文件夹,即使CopyLocal设置为true,在抱怨这个职位.对于MVVM模式,通常使用第三方控件而根本没有代码隐藏引用.

此帖的启发,我正在使用下面的解决方法.然而,这很容易,必须手动维护变量列表与整个项目中XAML文件中实际使用的变量列表同步,这些变量列表会不断变化.我的问题是,是否有真正的解决方案或更好的解决方法?(我知道使用post-build脚本的想法,IMHO不易发现并且更容易受到更改.)

internal static class BuildTricker
{
    private static readonly RadTreeView radTreeView;
    static BuildTricker()
    {
        // Set and get once to avoid compiler optimization.
        radTreeView = null;
        if (radTreeView != null)
        {
            throw new InvalidOperationException("This should never happen.");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Mar*_*ark 7

我使用的解决方法是确保该项具有在XAML中定义的名称.这使它在后面(部分)类的生成代码中为它创建一个实例.这足以使引用跟随系统检测引用,并在依赖项dll中复制.

例如:

<ts:HorizontalToggleSwitch IsChecked="{Binding ShowMyItemsOnly}"
                           CheckedContent="Show My Items Only"
                           UncheckedContent="Show All Items"
                           x:Name="NameRequiredForCopyLocal">
Run Code Online (Sandbox Code Playgroud)