我在VS中的一个Web项目(不是网站)上工作,主要是用VB编写的。我正在使用C#创建一个新的Web表单。 Web表单本身很好用,但我无法访问App_Code文件夹中的类。 App_Code文件夹中的类是用VB.net编写的。
我已尝试在vb类文件上设置Build Action进行编译,但这只会导致文件无法构建。 (在注释行上获取错误"字符文字中的字符太多"以及导入"命名空间不能直接包含诸如字段或方法之类的成员")。我也试过"使用" App_Code文件夹,但我找不到它。
对于我如何解决这个问题或者解决这些问题的任何建议都将非常感激。
---编辑---
如果您将网站打开为“Web应用程序”而不是“网站”,则Visual Studio的行为似乎有所不同。我想这是因为它包装文件或其他东西。对不起,我没有意识到这一点,这就是造成这个问题的原因。该网站是一个用VB编写的CMS系统,但我正在用C#构建自定义用户控件/ Web窗体,当我将它作为Web站点时,这种方法很好,但不是Web应用程序。我们正在尝试将此CMS系统迁移到Azure,我开始全新安装CMS系统。从网站创建Web角色的唯一方法是它是否是Web应用程序。这就是为什么我之前没有发现这个问题,我在Azure上运行了该网站,并开始为CMS创建自定义模块。
---编辑:解决方法---
我重新开始使用CMS安装干净,开箱即用并将其导入Web应用程序项目。然后我创建了两个新库,一个C#lib和一个VB lib。我将App_Code文件夹中的代码移动到VB lib,并在Web Application项目和C#lib中对此lib进行了参考。我对Web应用程序项目中的C#lib进行了参考,并在C#lib中添加了构建操作,将.aspx和.ascx文件复制到Web Application项目代表文件夹。我现在可以使用C#作为语言创建新的Web控件和Web窗体。
答案 0 :(得分:1)
VB和C#代码可以在同一个App_Code中共存。请参阅this page了解具体方法。基本上你只需将每个目录分成他们自己的目录并修改你的web.config。