1

在从开发到最终用户分发的整个生命周期中,AC# 可执行文件可以驻留在 3 个不同的位置:

  • {项目目录}\bin\Debug
  • {项目目录}\bin\Release
  • {最终用户安装目录}

我的应用程序有一个网页和一些辅助文件,我喜欢将它们放在一个名为\video的子目录中,就在包含可执行文件的目录下方。我真正不想做的是在上面列出的 3 个目录之间复制子目录。换句话说,显然我不想最终得到:

  • {项目目录}\bin\Debug\video
  • {项目目录}\bin\Release\video
  • {最终用户安装目录}\video

每次\video中的文件更改时都会进行固有的重新复制。

将与应用程序一起分发的数据文件保存在集中目录中的方便总体策略是什么,该目录将在分发应用程序时添加到安装 程序中?我希望每次在 Visual Studio 2012 IDE 中运行应用程序时,我都不必添加构建任务来将数据文件复制到\Debug\Release子目录。如果我忘记在构建任务期间复制文件,这会导致潜在的错误,并且如果有很多文件,尤其是大文件,则会造成混乱。

有没有办法构建可以方便地检测 3 个不同运行时上下文中的每一个的顶级数据路径?我不介意在将相对路径传递给另一个方法时,是否必须使用规范化数据路径的方法来包装所有相对数据路径。这是一个使用名为fixRelPath()的虚构方法的示例,该方法将在将相对路径传递给名为openFile()的示例方法之前正确扩展相对路径:

openFile(fixRelPath(".\\video\\temp.html"));
4

1 回答 1

0

您应该将文件放在 AppData 目录中。

每个用户:

Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);

共享:

Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData);
于 2013-02-04T23:57:35.630 回答