XAML 命名空间定义含点,何以先对后错?

XAML namespace definition containing dots, how can something first be right and afterwards be wrong?

我有以下 XAML 文件:

<client:View ...
    ...
    xmlns:Product.Project1.Client="clr-namespace:Product.Project1.Client.Controls;assembly=Product.Project1.Client"
    ...

在 Visual Studio 中,此行被禁用(变灰),我得到提示,说这不是有效的 XAML 名称,但是当我尝试构建时,没问题。

不过,那我加一句类似的:

<client:View ...
    ...
    xmlns:Product.Project2.Client="clr-namespace:Product.Project2.Client.Controls;assembly=Product.Project2.Client"
    xmlns:Product.Project1.Client="clr-namespace:Product.Project1.Client.Controls;assembly=Product.Project1.Client"

这些行再次被禁用(变灰),我得到一个提示,说这不是一个有效的 XAML 名称,但是这次,当我编译时,我得到两个 XLS0412 错误,说提到的行是无效的 XAML 名称。

我正在向现有项目中添加一些东西,所以我想知道这如何能够先编译成功,然后再编译失败。有人有想法吗?

提前致谢

问题是代码行内的点引起的 Product.Project2.Client
更换特殊字符将解决您的问题,例如 ProductProject2Client 或如您所述: Product_Project2_Client.