xmlns中的条件程序集名称

时间:2017-12-02 16:09:53

标签: c# wpf xaml

xaml文件中,namespace如下:

xmlns:vsp="clr-namespace:Microsoft.VisualStudio.PlatformUI;assembly=Microsoft.VisualStudio.Shell.15.0"

麻烦的是,对于Visual Studio 2015,它将是(注意不同的assembly

xmlns:vsp="clr-namespace:Microsoft.VisualStudio.PlatformUI;assembly=Microsoft.VisualStudio.Shell.14.0"

有没有办法有条件地提供xmlns或有条件地提供assembly名称?或者有另一种方法可以做到这一点?

P.S。我重写了整个问题,因为我意识到我对XmlnsDefinitionAttribute的理解是错误的。这必须在'引用'程序集AssemblyInfo.cs中进行,并且在此问题的上下文中,我们无法访问引用程序集的AssemblyInfo.cs

1 个答案:

答案 0 :(得分:2)

我能让它工作的唯一方法就是为EnvironmentColors创建自己的包装器(这是我在xaml中使用的唯一类)。 在包装器中,我创建的属性仅适用于我正在使用的属性(大约8个):

public static class EnvironmentColorsWrapper
{
    public static ThemeResourceKey AccentBorderBrushKey 
    { 
        get
        {
            return EnvironmentColors.AccentBorderBrushKey;
        }
    }
}

EnvironmentColorsWrapper用于xaml文件。

Microsoft.VisualStudio.Shell.14.0& Microsoft.VisualStudio.Shell.15.0文件中有条件地引用了csproj

如果其他人发布更好的方法来做到这一点,我会接受它,否则会接受这个作为答案。