具有两个命名空间(嵌套文件夹)的 ASPNET 项目将无法编译

问题描述 投票:0回答:1

我正在尝试构建一个较旧的项目。该应用程序有两个版本,“v2”版本位于父级的子文件夹中。

父级的命名空间是 BackOfficeAPI

子应用程序的命名空间是BackOfficeAPI2

如果我完全删除 v2 文件夹,应用程序就会构建。如果我将其添加回来,该文件夹中的所有内容都会抛出错误 - 每个类,每个页面上的每个小部件。

我已经验证 v2 文件夹中的每个文件(类、Web 表单)都指定了命名空间 BackOfficeAPI2,并且我已经检查了父级中的所有文件都指定了 BackOfficeAPI。

v2 应用程序中类文件的顶部示例:

namespace BackOfficeAPI2
{
    class SqlServer : DataObject

(rest of file omitted)

错误:找不到类型或命名空间“DataObject”

但是..

namespace BackOfficeAPI2 {
    class DataObject

它确实存在。这似乎是子应用程序和父应用程序之间的命名空间冲突,但我找不到它。

这个应用程序曾经像这样运行良好,我不知道源代码有任何变化。

如果我尝试,上面:

namespace BackOfficeAPI2 {
    class SqlServer : BackOfficeAPI2.DataObject

在键入 .在 BackOfficeAPI2 之后,智能感知唯一可以找到的是包含我正在编辑的代码的源文件本身,而 BackOfficeAPI2 中没有其他内容。它看不到“BackOfficeAPI2.DataObject”。

我需要做什么才能说服 Visual Studio 2017 解析 BackOfficeAPI2 命名空间并构建项目?

c# asp.net visual-studio-2017
1个回答
0
投票

请参阅类无法在同一命名空间中找到另一个类 确保 v2 文件夹中的文件的“构建操作”正确设置为“编译”:

  • 在解决方案资源管理器中,选择v2文件夹中的文件,右键单击, 并选择属性。
  • 在“属性”窗口中,确保“构建操作”设置为 编译。

记得关闭VS2017,设置Build Action后重新打开,清理并重建项目

© www.soinside.com 2019 - 2024. All rights reserved.