gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 22:27:31 24 4
gpt4 key购买 nike

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

  2. 假设一个 Web 项目具有如下所示的目录结构。由于所有 Web 项目的 ASPX 文件都被编译成一个程序集 WebProject1.dll,这个程序集如何记录/内存目录结构?因此,当您将 WebProject1.dll 部署到 Web 服务器并且用户发出对 http://WebProject1/some_SubDir/default.aspx 的请求时,WebProject1 将如何.dll 能找出要渲染的页面吗?

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

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

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

谢谢


编辑:


Only the sourcecode is compiled into the assembly, you still need to upload the aspx files into a matching directory on the server.

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


Links are maintained between the page and it's code behind file through a class declaration which by default is in a namespace that matches the directory structure

因此,如果我通过项目 --> 添加新项 添加一个新的 aspx 页面,并将该 aspx 页面存储在名为 Hey 的子目录中,那么该页面将位于在命名空间 WebProject1.Hey 中?!

但是我该如何将新项目添加到子目录中,因为项目 --> 添加新项目 没有给我浏览和选择我希望保存它的目录的选项,而是自动在根目录中创建 aspx 文件?


The relative path is kept when the compiler generate the 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)

编译完网络应用后,您需要将以下内容上传到服务器:

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)

编译资源(编译并存储在程序集中的非源代码文件)是不同的问题,已在您的 other question 中解决。


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

  1. 并非所有文件都编译到程序集中,只有源代码文件是。通过类声明维护页面与其代码隐藏文件之间的链接,类声明默认位于与目录结构匹配的命名空间中,但并非必须如此。

  2. 您的 default1.aspx 文件的标题中将包含如下内容:

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

  1. 是的,您需要创建相同的目录结构,但是您需要将 aspx 文件放在那里。

(如果有人知道如何让列表项正确编号,可以请编辑这个吗?)

关于c# - 程序集是否维护其目录结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/786985/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com