C# 程序集是否维护其目录结构?

C# 程序集是否维护其目录结构?,c#,asp.net,assemblies,asp.net-2.0,C#,Asp.net,Assemblies,Asp.net 2.0,由于web项目中的所有文件都编译成单个程序集,那么这个程序集是否维护目录结构?例如,如果根目录中的一个文件引用子目录中的一个文件,那么当这两个文件被编译到同一个程序集中时,该引用怎么可能仍然有效 假设web项目具有如下所示的目录结构。 既然所有web project的ASPX文件都被编译成一个程序集WebProject1.dll,那么这个程序集如何记录/记忆目录结构? 因此,当您将WebProject1.dll部署到web服务器时,用户会请求http://WebProject1/some_Sub

由于web项目中的所有文件都编译成单个程序集,那么这个程序集是否维护目录结构?例如,如果根目录中的一个文件引用子目录中的一个文件,那么当这两个文件被编译到同一个程序集中时,该引用怎么可能仍然有效

  • 假设web项目具有如下所示的目录结构。 既然所有web project的ASPX文件都被编译成一个程序集
    WebProject1.dll
    ,那么这个程序集如何记录/记忆目录结构? 因此,当您将
    WebProject1.dll
    部署到web服务器时,用户会请求
    http://WebProject1/some_SubDir/default.aspx
    WebProject1.dll
    如何确定要呈现的页面

    WebProject1\SubDir(其中WebProject1是根目录) WebProject1--包含几个ASPX文件 WebProject1\SubDir--包含一个文件
    default1.aspx

  • 部署Web项目时,我们必须在Web服务器上创建相同的目录结构(
    WebProject1\SubDir
    ),即使我们不会将任何ASPX文件放入这些目录中

  • 我假设Web服务器上的
    WebProject1.dll
    应该放在
    Bin
    目录中

  • 塔克斯


    编辑:



    只有源代码被编译到程序集中,您仍然需要将aspx文件上载到服务器上的匹配目录中


    我的书中说,当使用Web项目时,所有Web代码都被编译成单个程序集。我以为“所有代码”都包括aspx文件


    页面和代码隐藏文件之间的链接通过类声明来维护,默认情况下,类声明位于与目录结构匹配的命名空间中

    因此,如果我通过Project-->add new Item添加一个新的aspx页面,并将此aspx页面存储在名为Hey的子目录中,则此页面将驻留在命名空间WebProject1中。Hey

    但如何将新项添加到子目录中,因为Project-->add new item没有为我提供浏览和选择要保存它的目录的选项,而是在根目录中自动创建aspx文件


    编译器生成dll时会保留相对路径

    我不知道你指的是什么相对路径



    thanx

    所有这些路径信息都将作为元数据/资源文件嵌入,因此,您可以将其安全地部署到服务器上。编译器生成dll时会保留相对路径


    我建议您使用打开dll,您可以更深入地了解dll中的内容。

    所有这些路径信息都将作为元数据/资源文件嵌入,因此,您可以将其安全地部署到服务器。编译器生成dll时会保留相对路径


    我建议您使用打开dll,您可以更深入地了解dll中的内容。

    只有源代码被编译到程序集中,您仍然需要将aspx文件上载到服务器上的匹配目录中。例如,您在Visual Studio中的项目可能如下所示:

    WebProject1 (The root project)
      |
      |- some_SubDir (A physical directory inside the project)
          |
          |-default1.aspx
          |-default1.aspx.cs (assuming a C# project)
    
    编译web应用程序后,需要将以下内容上载到服务器:

    WebProject1 (The root directory for your website)
     |
     |-bin (The binary directory created by the build)
        |
        |-WebProject1.dll (The compiled source code of the web app)
     |-some_SubDir
        |
        |-default1.aspx (The file that will map to the URL www.websitename.com/some_subdir/default1.aspx)
    
    已编译资源(编译并存储在程序集中的非源代码文件)是在您的应用程序中解决的不同问题


    编辑以添加问题的直接答案:

  • 并非所有文件都编译到程序集中,只有源代码文件被编译。页面和代码隐藏文件之间的链接是通过类声明来维护的,默认情况下,类声明位于与目录结构匹配的名称空间中,但不必如此

  • 您的default1.aspx文件的标题中会有如下内容:

  • inherits行告诉Web服务器,当用户请求此页面时,应将其与定义该类的源代码一起处理,该类将在编译的程序集中找到。物理aspx文件和编译类的组合将生成标准html,然后将其传递回客户端

  • 是的,您需要创建相同的目录结构,但需要将aspx文件放在其中


  • (如果有人知道如何正确地对列表项进行编号,是否可以编辑此文件?

    只有源代码被编译到程序集中,您仍然需要将aspx文件上载到服务器上的匹配目录中。例如,您在Visual Studio中的项目可能如下所示:

    WebProject1 (The root project)
      |
      |- some_SubDir (A physical directory inside the project)
          |
          |-default1.aspx
          |-default1.aspx.cs (assuming a C# project)
    
    编译web应用程序后,需要将以下内容上载到服务器:

    WebProject1 (The root directory for your website)
     |
     |-bin (The binary directory created by the build)
        |
        |-WebProject1.dll (The compiled source code of the web app)
     |-some_SubDir
        |
        |-default1.aspx (The file that will map to the URL www.websitename.com/some_subdir/default1.aspx)
    
    已编译资源(编译并存储在程序集中的非源代码文件)是在您的应用程序中解决的不同问题


    编辑以添加问题的直接答案:

  • 并非所有文件都编译到程序集中,只有源代码文件被编译。页面和代码隐藏文件之间的链接是通过类声明来维护的,默认情况下,类声明位于与目录结构匹配的名称空间中,但不必如此

  • 您的default1.aspx文件的标题中会有如下内容:

  • inherits行告诉Web服务器,当用户请求此页面时,应将其与定义该类的源代码一起处理,该类将在编译的程序集中找到。物理aspx文件和编译类的组合将生成标准html,然后将其传递回客户端

  • 是的,您需要创建相同的目录结构,但需要将aspx文件放在其中

  • (如果有人知道,是否可以编辑此内容