如何在mvc解决方案目录中创建文件夹,使其包含在项目中?

fxd*_*xdx 3 c# asp.net-mvc

我是mvc和c#的新手,无法解决以下问题:

我正在尝试在解决方案文件夹中创建一个名为“ Items”的文件夹。我尝试使用CreateDirectory方法:

Directory.CreateDirectory("~/Images");
Run Code Online (Sandbox Code Playgroud)

但这对我不起作用-未创建文件夹。

部分可行的解决方案是通过以下方式创建文件夹:

Directory.CreateDirectory(Server.MapPath("~/Images"));
Run Code Online (Sandbox Code Playgroud)
  • “项目”文件夹已创建,但未包含在解决方案中:

在此处输入图片说明

如何在解决方案目录中创建文件夹,使其包含在项目中?

(我需要通过代码而不是手工来完成)

Kie*_*Chu 5

您需要了解用于什么目的solutioncsproj文件

通常,它们是通过Visual Studio 设计和用于开发的,一旦项目被编译,所有这些文件都将被忽略并从部署包中排除。

Directory.CreateDirectory(Server.MapPath("~/Images"));
Run Code Online (Sandbox Code Playgroud)

如果运行时部署包中尚不存在上述代码,则仅创建目录,因此除非在本地运行项目(调试/发布模式,在这里都没有关系),否则您将不会在解决方案中看到该目录。但是,所有内容都将在托管环境(例如IIS)中正常运行。

为了您的信息,这里是一个什么样的简短solutioncsproj

  • solution(.sln)文件:包含管理一个或多个独立项目的信息,包含构建环境(针对每个项目),启动模式(当您要一次运行多个项目时很有用),项目依赖项等。请注意,VS还从suo用于定义用户自定义首选项的文件(解决方案用户选项)中读取(您不应在版本控件中包含.suo文件,因为它是自定义设置

  • csproj 文件:定义项目的结构,名称空间是什么,什么是静态文件夹,嵌入式资源,引用,包等。

最后,如果您手动创建文件夹,VS将自动将该文件夹包含在deployment packageAND中csproj,但是取决于文件类型,您可能需要更改Build ActionCopy To Output Directory属性。

希望能帮助到你。


Dar*_*rov 4

Web 服务器上部署的 Web 应用程序没有任何 Visual Studio 解决方案或项目的概念。因此,这Directory.CreateDirectory(Server.MapPath("~/Images"))是在运行时在 Web 应用程序中创建文件夹的正确方法,但我们不能谈论将其包含到解决方案中,因为这在预编译的 Web 应用程序中几乎没有意义。如果您在本地开发计算机上创建目录,则始终可以手动将该文件夹包含到相应的.csproj文件中,但在运行时这不会产生任何差异。