我有一个带有控制台应用程序“MyApp1”的项目,它在我的计算机上的位置是“D:\ MyProjets \ MyApp1”。 我有另一个项目“Res”,它只包含资源,包括一个名为emailTemplate.html的文件。
我的项目“MyApp1”使用此文件。因此,在“App.config”文件中有一个存储此资源路径的键:“D:\ MyProjets \ Res \ emailTemplate.html”
最后,我对该应用程序“MyApp1”进行了测试。此测试检查是否已发送电子邮件。要发送电子邮件“MyApp1”将需要文件“emailTemplate.html”,并将使用配置文件中的密钥来查找它。
当我在计算机上运行测试时:一切正常。
但是如果我用TFS Build构建解决方案,那么在运行测试时我遇到了这个资源的问题。在构建期间,源文件被复制到目录中(例如“D:\ Build \ 1 \ My build projet \ Sources \ MyProjets \ Res”,因此“MyApp1”将在“D”中查找“emailTemplate.html” :\ MyProjets \ Res \ emailTemplate.html“(配置文件),当然也无法找到它。
我该怎么办?
我已经知道我的项目不应该以这种方式使用资源,但我们现在几乎不可能改变它,因为这是我们在公司工作一段时间的方式......
我考虑过修改BuildProcessTemplate以强制Build服务器在Res项目上运行getLatest,正好在我想要的地方。但我不知道这是不是一个好主意,或者它是否可能......
非常感谢你的帮助! :)
答案 0 :(得分:1)
编辑构建定义以在工作区中包含“Res”项目目录。它应该在每次构建时自动下载/更新(如果你使用任何默认的流程模板),只要你在测试中使用相对路径就可以了。