开始调试时出错

时间:2012-08-08 07:52:48

标签: c# asp.net visual-studio-2008

当我调试我的ASP.NET网站时,我收到以下错误:

  

文件"/BookIt.Web/App_Code/VBCode/vCalendar.vb""/BookIt.Web/App_Code/CSCode/WebGrid/user/BenutzerCollection.cs"使用不同的语言。这是不允许的,因为它们必须一起编译。

我不知道如何解决这个问题。

有人可以帮助我吗?

堆栈跟踪:

[HttpException (0x80004005): Die Dateien "/BookIt.Web/App_Code/VBCode/QueryStringModule.vb" und "/BookIt.Web/App_Code/CSCode/Webgrid/Dienstleistung/Servicegruppe.cs" verwenden unterschiedliche Sprachen. Dies ist nicht zulässig, weil sie gemeinsam kompiliert werden müssen.]
   System.Web.Compilation.BuildProvidersCompiler.ProcessBuildProviders() +452
   System.Web.Compilation.BuildProvidersCompiler.PerformBuild() +42
   System.Web.Compilation.CodeDirectoryCompiler.GetCodeDirectoryAssembly(VirtualPath virtualDir, CodeDirectoryType dirType, String assemblyName, StringSet excludedSubdirectories, Boolean isDirectoryAllowed) +640
   System.Web.Compilation.BuildManager.CompileCodeDirectory(VirtualPath virtualDir, CodeDirectoryType dirType, String assemblyName, StringSet excludedSubdirectories) +125
   System.Web.Compilation.BuildManager.CompileCodeDirectories() +265
   System.Web.Compilation.BuildManager.EnsureTopLevelFilesCompiled() +320

[HttpException (0x80004005): Die Dateien "/BookIt.Web/App_Code/VBCode/QueryStringModule.vb" und "/BookIt.Web/App_Code/CSCode/Webgrid/Dienstleistung/Servicegruppe.cs" verwenden unterschiedliche Sprachen. Dies ist nicht zulässig, weil sie gemeinsam kompiliert werden müssen.]
   System.Web.Compilation.BuildManager.ReportTopLevelCompilationException() +58
   System.Web.Compilation.BuildManager.EnsureTopLevelFilesCompiled() +512
   System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager, IApplicationHost appHost, IConfigMapPathFactory configMapPathFactory, HostingEnvironmentParameters hostingParameters) +729

[HttpException (0x80004005): Die Dateien "/BookIt.Web/App_Code/VBCode/QueryStringModule.vb" und "/BookIt.Web/App_Code/CSCode/Webgrid/Dienstleistung/Servicegruppe.cs" verwenden unterschiedliche Sprachen. Dies ist nicht zulässig, weil sie gemeinsam kompiliert werden müssen.]
   System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +8921851
   System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +85
   System.Web.HttpRuntime.ProcessRequestInternal(HttpWorkerRequest wr) +259

1 个答案:

答案 0 :(得分:4)

简单地说,你不能在同一个项目中混合语言。您可以在同一个解决方案中拥有一个VB.NET项目和一个C#项目,一个引用另一个。您使用一个编译器来编译单个项目。

如果其他语言包含在Build Action: Content中,而不是Build Action: Compile,则可以在同一项目中包含多种语言的代码。当然,您将无法使用这些文件中的类和逻辑。

然而,App_Code文件夹中的代码文件将自动编译

  

http://msdn.microsoft.com/en-us/library/t990ks23(v=vs.80).aspx

     

由于App_Code文件夹中的源代码被编译为单个程序集,因此App_Code文件夹中的所有文件必须使用相同的编程语言。例如,App_Code文件夹不能包含Visual Basic和C#中的源代码。

     

但是,您可以将Web应用程序配置为将App_Code文件夹的子文件夹视为单独的可编译单元。然后,每个文件夹可以包含不同编程语言的源代码。通过在Web.config文件的编译元素中创建codeSubDirectories元素并添加对子文件夹的引用来指定配置。以下示例说明如何配置名为VBCode和CSCode的子文件夹以编译为单独的程序集:

<compilation debug="false">
    <codeSubDirectories>
        <add directoryName="VBCode" />
        <add directoryName="CSCode" />
    </codeSubDirectories>
</compilation>