XAML clr-namespace
版本255.255.255.255是特殊的还是任意值?
在尝试使用一些Xamarin.Forms Native View嵌入时,我在Xamarin文档上遇到了这个Consuming Native Views示例。在XAML中,它添加了一个Windows命名空间,如下所示:
<ContentPage
...
xmlns:win="clr-namespace:Windows.UI.Xaml.Controls;assembly=Windows,
Version=255.255.255.255, Culture=neutral, PublicKeyToken=null,
ContentType=WindowsRuntime;targetPlatform=Windows"
...
>
该命名空间上的Version
看起来有点像网络子网掩码,因此引起了我的注意。该特定版本是否具有某些特殊含义,或者只是填充它,因为它期望值存在?还有其他特殊价值可以进去吗?
答案 0 :(得分:1)
ECMA 335标准定义了公共语言基础结构(CLI),其中用多种高级语言编写的应用程序可以在不同的系统环境中执行,而无需重写这些应用程序以考虑这些环境的独特特性
ECMA 335组件需要有版本号。但是Windows运行时类型解析算法并没有使用版本号,因此创建winmd格式的团队为程序集版本号选择了任意版本号255.255.255.255。
这有助于确保在进行类型解析时没有人尝试使用.Net类型解析算法(它不完美,不幸的是有些工具仍然使用.Net类型解析算法)。
有关详细信息,请参阅What does version 255.255.255.255 for winmd files indicate?。