在 vb.net 网站项目中无法访问 App_Code 文件夹中的 Class

Class in App_Code folder not accessible in vb.net website project

在工作中,我被要求对我以前没有参与过的 vb.net 网站项目进行一些修改。我已经从 TFS 克隆代码并在 VS2019 中打开它,但是当我尝试 运行 时出现错误。我知道网站 运行s,因为我的同事一直在开发它,它也在服务器上运行并被我们的客户使用。

我已经修复了 web.config 中的一些错误并添加了一些缺失的引用,但现在我在 App_Code 文件夹中遇到了一个名为 Translation 的 class 问题. class 在网站各处使用,但我收到错误:

Type 'Translation' is not defined.

我遇到的所有解决方案都说我需要将 class 上的构建操作更改为 'compile',但这对于网站来说是不可能的,因为没有建立行动 属性。我看到的另一个建议是添加一个 'using' 语句,但是由于 class 没有命名空间,所以这不是一个选项。

我看到很多人问如何为网站做这个,但没有人提供答案,所以我希望有人能最终想出一个解决方案来帮助我和其他苦苦挣扎的人这个问题。

app_code经常有问题。事实上两倍。首先,IIS 将编译该文件夹中的代码,而不是 Visual Studio。这可能会导致部署问题(一些(很多)网站没有较新的 rosylin 编译器,我发现一些很棒的新功能(例如代码中的自由格式字符串)将无法编译。

但是展开应用程序代码,然后右键单击(属性)说出给定的 class 或您拥有的模块代码,然后 change/set 这个:(构建操作)

将上面的“构建”操作更改为编译(如果尚未编译)。

甚至在执行上述操作之前,尝试 re-build 全部(通常可以解决此问题)。

因此,更改上面的内容 - 您添加到 app_code 的 code/module 可能没有(曾经)编译过,因此在您的项目中看不到。

所以,实际上我现在经常创建自己的名为“MyCode”的文件夹,并且经常避免 app_code 的问题。但是,您可能正在处理现有的应用程序。

您也可以尝试这样做:

重命名 app_code 并再次添加:

例如:

但是,我会首先尝试在 app_code 中设置代码 module/or class 以首先在属性 sheet 中编译。并尝试 re-build all.

其实退出VS,re-load,打开项目。重建所有。首先这样做,以防万一(从那时起您不做任何更改)。如果 exit/reload 不起作用,那么如上所述,右键单击 app_code 中的 module/class 并将构建操作设置为编译。

最后但同样重要的是,您可以尝试 re-name,并添加 app_code 文件夹 - 因为它是一个特殊的 .net 文件夹,手动添加该文件夹通常不起作用(不要不只是添加文件夹 - 添加“asp.net”文件夹) - 你需要让 VS 按照上面的屏幕截图为你添加它。

经过许多痛苦的时间,我终于得到了代码 运行ning - 这主要归功于我的同事和老板的努力。现有项目似乎不适合我 运行 所以我的老板创建了一个新项目并向其中添加了所需的网站。在对配置进行了一些摆弄之后,他让它工作了。

很遗憾,我无法提供答案。如果您是来这里寻找的,我们深表歉意。我不确定这是否真的是个问题,因为我从来没有发现任何其他人遇到过这个问题。

感谢 Albert D. Kallal 的帮助