0

当我调试我的 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
4

1 回答 1

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>
于 2012-08-08T07:57:00.480 回答