问题是应用程序引用了一个解决方案项目,其名称空间中包含'System'。名称空间类似于'SolutionNamespace.WhatItIs.System'。因此,当我构建WPF应用程序时,其MainWindow.g.vb和Application.g.vb将发出如下错误:
我知道'* .g.vb'源代码是自动生成的。但有没有办法配置生成器,以便它可以为每个'System'命名空间添加'Global'?或者有办法解决这个问题吗?我无法真正更改WPF应用程序引用的其他库的命名空间,因为我不拥有它。任何帮助将不胜感激。
修改
我尝试将SolutionNamespace.WhatItIs.System
更改为SolutionNamespace.WhatItIs.Systems
,看看我的假设是否正确......我错了。 System
名称空间仍未定义,仍要求我将其更改为Global.System
。
编辑II:
看来我的假设毕竟是正确的。我第一次尝试将SolutionNamespace.WhatItIs.System
更改为SolutionNamespace.WhatItIs.Systems
时,我没有修改其程序集名称和根名称属性。当我改变并重建时,错误消失了。现在的问题是SolutionNamespace.WhatItIs.System
的所有者是否允许我更改名称空间,因为其他项目使用它。
答案 0 :(得分:1)
您可以在添加using
声明时尝试使用别名:
using CustomSystem = SolutionNamespace.WhatItIs.System;
然后参考这样的成员:
CustomSystem.SomeClass = new CustomSystem.SomeClass();
或者只是不将它添加到using
声明中并完全限定每次使用:
SolutionNamespace.WhatItIs.System.SomeClass =
new SolutionNamespace.WhatItIs.System.SomeClass();
更新>>>
如果这没有帮助,您可以查看StackOverflow上的Namespace collisions和C# Namespace Alias qualifier (::) vs Dereferencing Operator (.)帖子,这些帖子有很好的答案。我认为@Zache可能是正确的,提到您可能需要使用Global Namespace Alias。