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