我是 Visual Studio 的新手,我正在尝试找出组织项目的最佳方式。
我正在使用 sfml 库编写应用程序,并且我有各种正在使用的资源(图像/声音)。我将它们放入项目文件夹中,当我从 Visual Studio 启动我的应用程序时,一切正常。
不过我想知道,这如何转化为部署程序时?如果我进入解决方案的调试文件夹并尝试启动 exe,它无法找到任何资源文件。我是否应该告诉 Visual Studio 将文件复制到适当的目录,如果是这样,如何?
感谢您的任何建议或链接。
我是 Visual Studio 的新手,我正在尝试找出组织项目的最佳方式。
我正在使用 sfml 库编写应用程序,并且我有各种正在使用的资源(图像/声音)。我将它们放入项目文件夹中,当我从 Visual Studio 启动我的应用程序时,一切正常。
不过我想知道,这如何转化为部署程序时?如果我进入解决方案的调试文件夹并尝试启动 exe,它无法找到任何资源文件。我是否应该告诉 Visual Studio 将文件复制到适当的目录,如果是这样,如何?
感谢您的任何建议或链接。
例如,对于稍微复杂的“部署”场景,您可以使用构建后脚本将正确的文件复制到输出目录中,甚至将其打包成 zip 文件。
如果您发现自己编写了不止一页的批处理,您可能需要考虑以下选项,因为批处理是要调试的 PITA。
最近的 MSVS 项目文件实际上是MSBuild文件(只需.vcxproj
在记事本或 Vim 中打开文件)。例如,您可以使用Copy 任务,使用Exec 任务调用任意程序等。它可能比构建后脚本中的批处理脚本更复杂一些。MSBuild 4 可以使用属性函数,使其非常具有表现力。如果你这样做,有用的参考
对于“成熟”的项目,您需要使用专用的 MSBuild 文件、NAnt甚至更高级别的包装器(如Rake )来推出专用的构建系统。
作为一个不太受欢迎的替代方案,在之前的项目中,我在解决方案中构建了一个小型专用“构建器”.exe 项目,并让其他项目依赖它。然后在其他项目的构建后脚本中,我只需调用带有参数的构建器项目以使其执行某些任务。优点是您可以编写 C#(或 F# 或 VB.NET),而不必(尽可能多地)与构建系统作斗争,我认为它对于中小型项目非常有效。
对于我的项目,我将所有内容都放在一个目录中。
转到您的项目配置,更改General->Output directory
,General->intermediate directory
和Debugging->Working directory
到一个目录。找不到资源文件的原因是调试目录与输出目录不同。