1

我正在使用 Visual Studio 2012 Express。有一堆需要更改的网站的 aspx 和 cs 文件。根本没有项目文件。

在过去的几天里,我花了几个小时试图完成这项工作,但即将放弃并告诉客户,如果没有项目文件,这是不可能的。简直不敢相信是这样,但甚至无法弄清楚如何重新编译这些文件。

在 VS 中有一个选项文件 => 打开网站。在解决方案资源管理器中右键单击解决方案并添加一个类库项目。将 App_code 中的代码移到那里并编译它。

创建了一个新的 asp.net 空 Web 表单应用程序,复制了项目目录中的所有文件。添加了对类库项目创建的 DLL 的引用。

当我选择将代码隐藏文件中的每个引用编译到像 Label1.Text 这样的控件时,会产生错误“当前上下文中不存在名称‘Label1’”。在解决方案资源管理器中,扩展 aspx 文件时显示背后的代码,它们“包含在项目中”

有一个选项可以右键单击 aspx => 转换为 Web 应用程序。

它仍然在抱怨那里(在用户控件中)和之前在 App_Code 中的引用。

有没有一步一步的方法来真正有效地做到这一点?Microsoft 提供的大多数步骤最终都处于无法编译的状态。

4

2 回答 2

1

您可以将其保留为“网站”。网站在服务器上编译,部署前不需要编译。我参与过网站无法作为一个整体编译的项目,该公司正在对每个文件进行更改。我不知道您的网站是否属于这种情况。

通常,在将“网站”转换为 Web 应用程序时,您只需添加 .aspx 文件和相应的 .cs 文件即可。然后选择问题中提到的“转换为 Web 应用程序”。这并不总是有效,并且您发现它不会编译。我知道的唯一解决方案是手动修复错误。很多时候,它只是将控件定义添加到 .designer.cs 文件中。

于 2013-04-10T14:23:08.583 回答
1

最后编译它,现在可以使用 sql server express 和“发布”

这是我所做的:

创建了一个空的 Web 应用程序并从没有项目文件的站点复制文件(只能使用打开的网站打开)。

首先添加对bin目录中的dll文件的引用(解决方案资源管理器=>右键单击引用并浏览到空Web应用程序的bin文件夹)。

然后单击解决方案资源管理器中的“显示所有文件”按钮。右键单击 App_Code => 包含在项目中。

编译项目(需要在添加其他内容之前执行此操作)。

开始将其他文件夹添加到项目中,例如 UserControls 文件夹,并在每次添加它们时进行编译。

最后在root下添加了所有的aspx和cs文件并再次编译没有错误。

我今天在尝试添加 C# Web 表单时发现的另一件重要的事情是,我创建的空 Web 应用程序是一个 VB 应用程序,并且我向其中添加了 c# 文件。

当创建一个空的 c# web 应用程序并将 c# 文件添加到它时,错误会返回。一旦我尝试通过包含它们来编译任何用户控件。它从后面的代码中抱怨 ascx 文件中的对象“在此上下文中不可用”。

于 2013-04-11T05:47:55.930 回答