Visual Studio RootNamespace未用作名称空间前缀

cqoc49vn  于 2022-11-17  发布在  其他
关注(0)|答案(1)|浏览(162)

我最近创建了一个新的.net6项目,并将我的源代码移到其中。

<RootNamespace>$(MSBuildProjectName.Replace(" ", "_"))</RootNamespace>

在项目属性中,在应用程序-〉常规的底部有一个“默认命名空间”部分,其中还有“$(MSBuildProjectName.Replace(““,“_”))”
为了回答这个问题,我完全省略了解决方案,让我们假设我的项目结构如下
MyProject(这是一个项目文件为MyProject.csproj的项目)

  • DB(这是项目中的文件夹)
  • MySQL(这是DB文件夹下的子文件夹)
  • MSSQL(这是DB文件夹下的子文件夹)
  • UI(这是项目中的文件夹)

如果我在项目的根级别添加一个新类,则其命名空间为MyProject,但是如果我向DB添加一个新类,则其命名空间为DB。
我希望这是MyProject.DB
类似地,如果我向MSSQL项目添加一个新类,我会得到一个命名空间DB.MSSQL,而我希望它是MyProject.DB.MSSQL
我已经尝试将$(MSBuildProjectName.Replace(““,“_”))编码为MyProject,但没有任何帮助。

jvlzgdj9

jvlzgdj91#

听起来很奇怪,问题是WebView2版本1.0.1343.22更新到版本1.0.1370.28解决了该问题
我也在一个新的解决方案中重新创建了这个项目,只有一个项目,没有其他依赖项,以确保情况是这样的。
有趣的是,默认的using语句也不同。
在安装了1.0.1343.22版的情况下,创建一个新的类文件

using System;
using System.Collections.Generic;
using System.Text;

namespace DB.MsSQL
{
    internal class Class1
    {
    }
}

而在版本1.0.1370.28中,新的类文件如下所示

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace WebView2NamespaceIssue.DB.MsSQL
{
    internal class Class2
    {
    }
}

这两个类都是在同一项目的同一文件夹中创建的。

相关问题