从C#代码隐藏访问App_Code中的VB代码
本文关键字:代码 Code 中的 VB 访问 隐藏 App | 更新日期: 2023-09-27 18:36:37
我正在VS中开发一个主要用VB编写的web项目(而不是网站(。我正在使用C#创建一个新的web窗体。web表单本身工作得很好,但我无法访问App_Code文件夹中的类。App_Code文件夹中的类是用VB.net编写的。
我曾尝试在要编译的vb类文件上设置"构建操作",但这只会导致文件无法构建。(在注释行"character literal中的字符太多"和导入"命名空间不能直接包含字段或方法等成员"中出现错误(。我也尝试过"使用"App_Code文件夹,但找不到。
任何关于我如何解决这个问题或解决问题的建议都将不胜感激。
---编辑---
如果将网站打开为"web应用程序"而不是"网站",Visual Studio的行为似乎会有所不同。我想这是因为它在打包文件什么的。很抱歉我没有意识到这一点,这就是问题的原因。该网站是一个用VB编写的CMS系统,但我正在用C#为它构建自定义的用户控件/web Forms,当我把它作为网站时,这很好,但不是作为web应用程序。我们正在尝试将这个CMS系统迁移到Azure,我从CMS系统的新安装开始。从网站创建web角色的唯一方法是,如果它是一个web应用程序。这就是为什么我之前没有发现这个问题,现在我在Azure上运行了该网站,并开始为CMS创建自定义模块。
---编辑:解决方法---
我重新开始了CMS的安装,干净,开箱即用,并将其导入到一个Web应用程序项目中。然后我创建了两个新库,一个C#库和一个VB库。我将App_code文件夹中的代码移到了VB库中,并在Web应用程序项目和C#库中引用了该库。我在Web应用程序项目中引用了C#库,并在C#库中添加了构建操作,将.aspx和.ascx文件复制到Web应用程序的项目代表文件夹中。我现在可以用C#作为语言创建新的Web控件和Web窗体了。
VB和C#代码可以共存于同一个App_code中。请参阅此页面了解如何操作。基本上,您只需将每个文件分离到各自的目录中,然后修改web.config。