在xaml
文件中,命名空间
如下:
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
名称?或者有其他方法可以做到这一点?
附言我重写了整个问题,因为我意识到我对 XmlnsDefinitionAttribute
的理解是错误的。这必须进入“引用”程序集的 AssemblyInfo.cs
并且在这个问题的上下文中,我们无权访问引用程序集的 AssemblyInfo.cs
。
最佳答案
我能让它工作的唯一方法是拥有我自己的 EnvironmentColors
包装器(这是我在 xaml
中使用的唯一类(class))。
在包装器中,我只为我正在使用的属性(大约 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
中有条件地引用文件。
如果其他人发布了更好的方法来做到这一点,我会接受它,否则会接受这个作为答案。
关于c# - xmlns 中的条件程序集名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47609819/