翼度科技»论坛 编程开发 .net 查看内容

WinFrom项目结构

6

主题

6

帖子

18

积分

新手上路

Rank: 1

积分
18
示例项目结构

在 Visual Studio 中创建一个 WinForms 应用程序后,项目结构如下所示:
  1. MyWinFormsApp/
  2. ├───Properties/
  3. │   └───Settings.settings
  4. ├───bin/
  5. │   ├───Debug/
  6. │   └───Release/
  7. ├───obj/
  8. │   ├───Debug/
  9. │   └───Release/
  10. ├───Form1.cs
  11. ├───Form1.Designer.cs
  12. ├───Form1.resx
  13. ├───Program.cs
  14. ├───App.config
  15. └───MyWinFormsApp.csproj
复制代码

  • Properties/ 目录包含应用程序的设置文件。
  • bin/ 和 obj/ 目录包含构建输出和中间文件。
  • Form1.cs 是窗体的主要代码文件。
  • Form1.Designer.cs 是自动生成的窗体设计器代码。
  • Form1.resx 是窗体的资源文件。
  • Program.cs 是应用程序的入口点,包含 Main 方法。
  • App.config 是应用程序的配置文件。
  • MyWinFormsApp.csproj 是项目的工程文件,包含项目的所有配置信息。
Properties目录

Properties 目录是应用程序配置和资源文件的存储位置。通常由 Visual Studio 自动管理,包含以下关键文件和子目录:

  • AssemblyInfo.cs:

    • 包含程序集的元数据,如版本号、版权信息、程序集特性等。
    • 编译时嵌入到程序集中。

  • Resources.resx:

    • 存储应用程序的非编码资源,如图像、图标、字符串等。
    • 通过强类型属性在代码中访问,便于资源管理。

  • Settings.settings:

    • 存储应用程序的设置,如数据库连接字符串、用户偏好设置等。
    • 运行时通过 Properties.Settings 类访问和修改。

  • Resources 子目录:

    • 存放应用程序的资源文件,如图像、音频等。
    • 通过 Resources.resx 文件管理。

bin和obj目录

bin 目录

bin 目录是二进制目录,用于存放编译后的程序集(.dll 或 .exe 文件)。

  • Debug:存放调试版本的输出文件。这些文件包含了调试信息,使得开发者可以在调试器中检查代码的执行情况。
  • Release:存放发布版本的输出文件。这些文件不包含调试信息,通常进行了优化,以提高应用程序的性能。
在 bin 目录中,你还可以找到其他与编译相关的文件,如:

  • pdb 文件:程序数据库文件,包含了调试信息,如变量名、类型信息和代码行号等。
  • config 文件:应用程序配置文件,如 app.config 或 web.config。
  • xml 文件:有时编译器会生成 XML 文档文件,包含了代码的注释和文档信息。
obj 目录

obj 目录是对象目录,用于存放编译过程中的中间文件。

  • Debug 和 Release:与 bin 目录类似,obj 目录也会根据构建配置生成 Debug 和 Release 子目录。
在 obj 目录中,你可能会找到以下类型的文件:

  • csproj.FileListAbsolute.txt:列出了项目中所有文件的绝对路径。
  • *.csproj.GenerateResource.cache:资源生成器的缓存文件。
  • *.csproj.AssemblyReference.cache:程序集引用的缓存文件。
  • *.csproj.CopyComplete:复制操作完成的标记文件。
  • *.csproj.CoreCompileInputs.cache:编译输入的缓存文件。
obj 目录中的文件通常在构建过程中被自动清理和重新生成。这个目录对于开发者来说通常是不可见的,因为它主要用于构建系统内部处理。
总结


  • bin 目录:

    • 存放最终编译输出,包括可执行文件和库文件。
    • 包含 Debug 和 Release 子目录,分别用于调试和发布版本。

  • obj 目录:

    • 存放编译过程中的中间文件和缓存文件。

这两个目录由系统自动管理,开发者通常无需手动干预。发布应用时,只需关注 bin 目录中的 Release 子目录,确保其中的文件是最终用户使用的版本。
App.config

用于存储应用程序的设置和连接字符串等信息。允许开发者在不修改代码的情况下更改应用程序行为,例如:

  • 更改数据库连接字符串。
  • 设置日志级别。
  • 定义应用程序特定行为。
App.config文件结构
  1. <?xml version="1.0" encoding="utf-8" ?>
  2. <configuration>
  3.     <startup>
  4.         <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
  5.     </startup>
  6.     <connectionStrings>
  7.         
  8.     </connectionStrings>
  9.     <appSettings>
  10.         
  11.     </appSettings>
  12.    
  13. </configuration>
复制代码

  • :根元素,包含所有配置节。
  • :指定应用程序支持的 .NET 运行时版本。
  • :用于存储数据库连接字符串和其他连接信息。
  • :用于存储应用程序的自定义设置,如路径、默认值等。
使用 App.config文件

使用 ConfigurationManager 类来读取和写入 App.config 文件中的设置。以下是一些常见的操作示例:
读取连接字符串
  1. string connectionString = ConfigurationManager.ConnectionStrings["MyDatabase"].ConnectionString;
复制代码
读取应用程序设置
  1. string mySetting = ConfigurationManager.AppSettings["MySetting"];
复制代码
写入应用程序设置(仅限 .NET Framework)
  1. Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
  2. config.AppSettings.Settings["MySetting"].Value = "New Value";
  3. config.Save();
  4. ConfigurationManager.RefreshSection("appSettings");
复制代码
注意事项


  • .NET Core 和 .NET 5+:

    • 使用 appsettings.json 和 appsettings.{Environment}.json 文件存储配置信息,替代 App.config。

  • .NET Framework:

    • App.config 编译时重命名为 .config,如 MyApp.exe.config。
    • 代码中使用 ConfigurationManager 需添加 System.Configuration 程序集引用。

App.config 是管理应用程序配置的重要工具,使配置信息与代码分离,便于维护和修改。

来源:https://www.cnblogs.com/ouyangkai/p/18406726
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

举报 回复 使用道具