Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 如何将项目中创建的文件夹包括在输出目录中?_.net_Visual Studio 2010 - Fatal编程技术网

.net 如何将项目中创建的文件夹包括在输出目录中?

.net 如何将项目中创建的文件夹包括在输出目录中?,.net,visual-studio-2010,.net,Visual Studio 2010,我正在制作一个内部工具,以便更轻松地跟踪与错误/功能请求相关的文件。本质上,它只是一系列嵌套的TabControl控件 将有一个顶级TabControl tcProjects,它将包含N个TabPage控件 这些项目TabPage控件将分别包含另一个TabControl tcactiverchived控件,其中只包含两个TabPage控件:一个用于当前正在处理/尚未部署的活动问题,然后一个用于已部署/测试的问题的存档TabPage 最后,活动/归档的TabPage控件将包含另一个TabContr

我正在制作一个内部工具,以便更轻松地跟踪与错误/功能请求相关的文件。本质上,它只是一系列嵌套的
TabControl
控件

将有一个顶级
TabControl tcProjects
,它将包含N个
TabPage
控件

这些项目
TabPage
控件将分别包含另一个
TabControl tcactiverchived
控件,其中只包含两个
TabPage
控件:一个用于当前正在处理/尚未部署的活动问题,然后一个用于已部署/测试的问题的存档
TabPage

最后,活动/归档的
TabPage
控件将包含另一个
TabControl tcActive
/
TabControl tcarcheved
,每个单独的项目有N个
TabPage
控件

所以最终,它看起来是这样的:

除此之外,项目的顶级
TabControl
将比屏幕截图中显示的更高

基本上,它只是一个美化的文本文件管理器。它将每个编号选项卡的内容读/写到与
TabControl
/
TabPage
结构匹配的目录结构中的文本文件中

我所做的只是将名为
Projects
的“基本”文件夹添加到Visual Studio中解决方案资源管理器窗格中的项目中。然后我在那个文件夹中添加了一个我不关心的随机垃圾文件,这样当我构建项目时,这个文件夹实际上是在bin/Debug中创建的,我一直在把文本文件写到那个文件夹中。所以基本上是这样的:

myVSproject/bin/debug/Projects/projectnumeriouno/Active/13559.txt myVSproject/bin/debug/Projects/projectnumeriouno/Active/13612.txt myVSproject/bin/debug/Projects/ProjectNumeroUno/archive/13615.txt

这次我想做一些更“合法”的事情,因为我正在改进软件。我已经阅读了关于这个主题的其他SO问题,这些问题建议您添加一个安装项目,该项目将为应用程序创建安装程序,从那里您可以指定将哪些文件夹添加到安装中,但这远远不是一个理想的情况,因为我们并没有在机器上真正安装软件,而只是运行exe当您构建解决方案时,VS将被转储。这不需要安装,避免了办公室的一些官僚磁带


那么,如何在编译时创建一个空的“基本级别”
Projects
文件夹呢?

它需要在编译时创建吗?例如,它可能是在应用程序首次启动时出现的吗?您可以拉取其中一个并在那里创建一个相对于用户系统的新项目文件夹(
SpecialFolder.MyDocuments
ro
SpecialFolder.CommonApplicationData
)。我希望避免向应用程序中添加代码来处理此问题-在这一点上,如果(!Directory.Exists(currentDir+“./Projects”))Directory.Create(…)(或类似的内容),它与
没有太大区别,但它确实感觉“不那么粗糙”,至少是这样。不幸的是,对于一个独立的可执行文件,由于不需要安装程序,您在第一次启动时就有点无法完成。您考虑过ClickOnce部署吗?另一个想法是:创建一个自解压zip包,可以在解压后运行脚本:。将你的.exe和依赖项以及一个创建“项目”文件夹的短批处理文件放入其中。为什么不使用项目管理工具呢?TFS(作为一个例子)正好内置了这种功能。它需要编译时吗?例如,它可能是在应用程序首次启动时出现的吗?您可以拉取其中一个并在那里创建一个相对于用户系统的新项目文件夹(
SpecialFolder.MyDocuments
ro
SpecialFolder.CommonApplicationData
)。我希望避免向应用程序中添加代码来处理此问题-在这一点上,如果(!Directory.Exists(currentDir+“./Projects”))Directory.Create(…)
(或类似的内容),它与
没有太大区别,但它确实感觉“不那么粗糙”,至少是这样。不幸的是,对于一个独立的可执行文件,由于不需要安装程序,您在第一次启动时就有点无法完成。您考虑过ClickOnce部署吗?另一个想法是:创建一个自解压zip包,可以在解压后运行脚本:。将你的.exe和依赖项以及一个创建“项目”文件夹的短批处理文件放入其中。为什么不使用项目管理工具呢?TFS(作为一个例子)正好内置了这种功能。