C# 发布后未编译使用LINQ to SQL类的代码
我在VisualStudio2010、.NET4中创建了一个简单的web项目,它有两个部分,用于插入和检索SQL Server数据库中的数据。我已经通过LINQtoSQL类的CommentaryData.dbml文件设置了这个。如果我从visual studio中选择“在浏览器中查看”,当我发布(文件发布到IIS wwwroot文件夹)时,这些文件发布时不会出现错误,那么所有这些都可以正常工作。但当我在浏览器中查看时,我看到以下编译错误: CS0246:找不到类型或命名空间名称“CommentaryDataContext”(是否缺少using指令或程序集引用?) 如果我展开详细的编译器输出,这将发生在包含我的datacontext的每一行:C# 发布后未编译使用LINQ to SQL类的代码,c#,asp.net,linq,C#,Asp.net,Linq,我在VisualStudio2010、.NET4中创建了一个简单的web项目,它有两个部分,用于插入和检索SQL Server数据库中的数据。我已经通过LINQtoSQL类的CommentaryData.dbml文件设置了这个。如果我从visual studio中选择“在浏览器中查看”,当我发布(文件发布到IIS wwwroot文件夹)时,这些文件发布时不会出现错误,那么所有这些都可以正常工作。但当我在浏览器中查看时,我看到以下编译错误: CS0246:找不到类型或命名空间名称“Commenta
CommentaryDataContext
我的项目引用中已经有system.data.linq
,代码文件中的引用库如下所示:
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
我也试着注释掉所有引用datacontext的代码,然后项目会很好地发布,所以我确信与LINQ有关的事情是问题所在,但就我所见,我引用的是正确的库,我能尝试解决这个问题吗
编辑:我尝试将程序集作为
手动添加到web.config,但没有成功
我还检查了bin文件夹中是否存在System.Data.Linq.dll,它是否存在
我还尝试在datacontext的每个实例之前显式引用命名空间,浏览器中的错误消息会更改,告诉我datacontext不存在于该命名空间中,但当我查看dbml的designer.cs时,命名空间是正确的,并且匹配
编辑2:正在创建的唯一dll(除了system.ones)是我的主命名空间/解决方案/项目的dll:tableaucommential.dll。如果我再次将“要部署的项目:”更新为“仅运行此应用程序所需的文件”,则它可以正常发布,但当尝试在浏览器中查看时,我会收到不同的错误:
分析器错误消息:文件“/tcom/CommentaryOutput.aspx.cs”不存在
源错误:
第1行:
我所有代码文件上的Build action都设置为compile,但dll文件似乎没有正确创建,我遇到LINQ错误的唯一原因是因为codebehind.cs文件包含在发布位置,而不需要这样做。包括dbml设计器在内的所有代码文件都是在项目中创建的,并且使用相同的名称空间,因此可能只有一个dll,但它不能正常工作,或者应该为LINQ元素提供一个单独的dll,如下所示,不确定…有人可以提供进一步的帮助吗 可能有几个原因:
我终于整理好了。我认为这个解决方案值得发布;由于需要大量阅读才能找到明确说明这是必要步骤的任何地方: 如果您是通过文件系统发布:发布后必须转到IIS管理器,右键单击应用程序并单击“转换为应用程序” 这不是web部署发布的必要步骤,因为它是为您完成的,对于网站而不是web应用程序来说,这根本不是必需的,所以我以前根本没有遇到过这样做的需要
编辑:我应该声明这对于VisualStudio2010、.NET4.0、IIS8是正确的。我不能为其他版本说话,这似乎对