在开发过程C#桌面应用程序时,数据文件夹的正确位置在哪里
我在C#中编写桌面应用程序。。。。此应用程序将为嵌入式EDD系统项目自动生成C/C++代码在开发过程C#桌面应用程序时,数据文件夹的正确位置在哪里,c#,filesystems,desktop-application,desktop,appdata,C#,Filesystems,Desktop Application,Desktop,Appdata,我在C#中编写桌面应用程序。。。。此应用程序将为嵌入式EDD系统项目自动生成C/C++代码 因此,我必须将一些预写驱动程序复制到目标文件夹(生成文件的地方) 问题是我不知道在哪里可以正确地将sourc驱动程序放入 现在,我把源驱动程序放在项目foldr中,并在我的代码lik中引用它 // projectfolder\bin\Debug\netcoreapp3.1\file.exe string path = (Assembly.GetExecuti
因此,我必须将一些预写驱动程序复制到目标文件夹(生成文件的地方) 问题是我不知道在哪里可以正确地将sourc驱动程序放入 现在,我把源驱动程序放在项目foldr中,并在我的代码lik中引用它
// projectfolder\bin\Debug\netcoreapp3.1\file.exe
string path = (Assembly.GetExecutingAssembly().Location);
DirectoryInfo exeDir = new DirectoryInfo(path);
DirectoryInfo projectDir = exeDir.Parent.Parent.Parent.Parent;
// now i can get the driver foler like this
string DriverPath = Path.Combine(projectDir.fullName,"drivers");
我推测产品级别的文件夹将位于C:\ProgramData
但是对于开发位置应该在哪里?在
Environment.CurrentDirectory+“\\Folder”
在Environment.CurrentDirectory+“\\Folder”
中的c#dekstop应用程序中的默认位置,这主要是数据更改频率的问题。这将如何与NTFS变得普遍以来非常严格的写权限管理相互作用(虽然该规则早于NTFS,大部分是FAT,因此没有阻止我们的权限,但很少有程序员关心)
如果在程序更新/重新安装之外没有更改,您可以甚至应该将内容放入程序目录本身。如果它只是随着安装程序或更新程序而改变——不管怎样,它们的工作都需要管理权限——它就属于那里
如果更改发生得更频繁,那么程序文件夹将变得不可用,尤其是那些在运行时可能更改甚至需要在运行时更改的内容。在这种情况下,程序目录顶部应该包含一个模板文件。您可以将其复制到真实目录作为基线,以便开始使用。至于将这些可变数据放在何处,请查看。Userprofile-SpecialityAppData文件夹是要查看的重点。具体使用哪一个是您希望它如何与域控制器同步(漫游用户与非漫游用户)交互的问题。或者,如果你想让它以共同的方式结束
驱动程序听起来像是一种罕见的情况,程序目录完全适合这种情况。您可以选择将驱动程序作为并行应用程序安装。可以单独管理/更新的东西,这只是程序的一个要求。可以跨多个应用程序共享的内容。这主要是数据更改频率的问题。这将如何与NTFS变得普遍以来非常严格的写权限管理相互作用(虽然该规则早于NTFS,大部分是FAT,因此没有阻止我们的权限,但很少有程序员关心) 如果在程序更新/重新安装之外没有更改,您可以甚至应该将内容放入程序目录本身。如果它只是随着安装程序或更新程序而改变——不管怎样,它们的工作都需要管理权限——它就属于那里 如果更改发生得更频繁,那么程序文件夹将变得不可用,尤其是那些在运行时可能更改甚至需要在运行时更改的内容。在这种情况下,程序目录顶部应该包含一个模板文件。您可以将其复制到真实目录作为基线,以便开始使用。至于将这些可变数据放在何处,请查看。Userprofile-SpecialityAppData文件夹是要查看的重点。具体使用哪一个是您希望它如何与域控制器同步(漫游用户与非漫游用户)交互的问题。或者,如果你想让它以共同的方式结束 驱动程序听起来像是一种罕见的情况,程序目录完全适合这种情况。您可以选择将驱动程序作为并行应用程序安装。可以单独管理/更新的东西,这只是程序的一个要求。可以在多个应用程序之间共享的内容。
在Windows中,应用程序可能会使用不同类型的数据,例如
- 应用程序属性
应用程序设置使您能够动态存储应用程序信息。设置允许您在客户端计算机上存储应用程序代码中不应包含的信息
Ex:位置、字体、样式、用户配置
文件类型:App.Config(在设计时创建,默认情况下放入BIN文件夹)和User.Config(在运行时创建)
项目>添加新项目>已安装>Visual C#项目>应用程序配置文件
- 应用数据
包含安装的软件和UWP应用程序所需的所有数据、设置和用户文件。这些是用户不可知的数据
Ex:图像、资源、精灵、数据模板、txt文件。它还可能包含App.Config文件
文件位置:
C:\ProgramData Environment.SpecialFolder.CommonAppData
- 用户数据
包含用户特定的所有数据,例如他/她的应用程序特定设置
Ex:任何类型的数据
文件位置:
C:\Users\[USERNAME]\AppData\Roaming
或Environment.SpecialFolder.AppData
Environment.SpecialFolder.MyDocuments
我推测产品级的文件夹将位于C:\ProgramData中,但是 用于开发位置应在哪里 是的,它将转到ProgramData,但在开发过程中,如果有必要,您可以将它放在BIN文件夹或您选择的目录中 然而,当你将你的应用程序打包到MSI并捆绑在所有依赖文件和它们需要去的地方时,上面的大部分内容就会出现
编辑 根据评论中的OPs说明,.CPP文件将自动进入
BIN/Debug
文件夹