【问题标题】:How to add a aspx web page with no compilation如何在不编译的情况下添加aspx网页
【发布时间】:2014-04-17 20:30:48
【问题描述】:

我在 VS2005 中有一个现有项目。当我添加一个新的 asxp 页面时,该项目正在添加它,如下所示

<Compile Include="ASPX\myNewPage.aspx.vb">
      <DependentUpon>myNewPage.aspx</DependentUpon>
      <SubType>ASPXCodeBehind</SubType>
</Compile>

我需要按照下面列出的方式添加它。

 <None Include="ASPX\existingPage.aspx.vb">
      <SubType>ASPXCodeBehind</SubType>
      <DependentUpon>existingPage.aspx</DependentUpon>
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
 </None>

我们怎样才能像上面那样添加它?当我将文件复制到生产文件夹时,它们会导致什么差异?

参考

1 Does code in aspx page get compiled in a web application?

2How to work with code-behind class files in an ASP.NET application by using Visual Basic .NET

3Understanding ASP.NET Dynamic Compilation

编辑

以下是我添加动态编译页面的方法。

ASPX

<%@ Page Language="vb" AutoEventWireup="false" Src="WebForm1.aspx.vb" CodeBehind="WebForm1.aspx.vb" 
    Inherits="WebForm1" %>

代码隐藏

Public Class WebForm1
    Inherits System.Web.UI.Page

遵循的步骤:

  1. 发布它
  2. 在 IIS 下运行它,指向已发布的位置。
  3. 从已发布的文件夹中删除 WebForm1.aspx
  4. 手动将 WebForm1.aspx 和 WebForm1.aspx.vb 复制到发布位置。

【问题讨论】:

  • 这是特定于网站项目的吗?如果是这样,请尝试弄乱属性页上的 MSbuild 选项卡并检查“使用的固定命名和单页程序集”检查 nox。 IIRC 这在 as*x 页面中为您提供了稍微不同的指令。

标签: asp.net


【解决方案1】:

通常,在 Web 应用程序中,所有隐藏在文件中的代码(例如 myNewPage.aspx.vb)都会编译到单个 DLL 中。该文件本身在运行时不再需要,并且在复制到输出目录时没有任何区别,只是将代码暴露在后面。

要在不手动编辑项目文件的情况下执行此操作,请右键单击您的目标文件myNewPage.aspx.vb,然后选择属性。在以下屏幕中进行更改:

构建操作:无 - 文件不包含在项目输出组中,也不在构建过程中编译。一个示例是包含文档的文本文件,例如自述文件。

复制到输出目录 - 此属性指定将所选源文件复制到输出目录的条件。

更多详情请见VS2005 File Properties

【讨论】:

  • 你需要选择myNewPage.aspx.vb而不是myNewPage.aspx
猜你喜欢
  • 1970-01-01
  • 2014-04-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-12
  • 2016-02-22
  • 1970-01-01
  • 2010-12-28
相关资源
最近更新 更多