我们在Visual Studio中的一个解决方案下有一组测试项目。我想读取一个Json文件,该文件在运行时从不同的项目文件夹复制到输出目录。这是一个测试项目。我可以获取当前项目目录。但不确定如何获取其他程序集的目录。
解决方案如下所示***Project 1-〉Sample.json(此文件设置为复制到输出目录)Project 2***
在Project 2中运行测试时,我希望从输出目录访问Project 1中的文件。
我曾经用上面提到的代码访问同一个项目文件夹中的文件。但不知道如何获得不同的项目文件。现在用替换我能够实现它。但肯定这不是正确的方式
var filePath = Path.Combine("Sample.json");
var fullPath = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), filePath).Replace("Project1", "Project2");
不确定如何从其他项目获取。我确定我不能使用***GetExecutingAssembly()***,但有什么替代方法吗?不知何故,我可以使用上述替换程序集名称的肮脏方法访问它。
4条答案
按热度按时间mitkmikd1#
若要取得另一个组件的位置,您可以使用该组件的型别来取得正确的
Assembly
执行严修,进而取得它的位置:h5qlskok2#
首先,我建议您可以在解决方案中找到dll路径。
其次,可以从路径中过滤json文件。
接下来是我的工作代码。
请先安装Microsoft.Build和Microsoft.Build.Framework nugetpackages。
rhfm7lfc3#
您可以使用下面的代码以更好的方式完成此操作
ni65a41a4#
您可以在MSBuild中使用CopyToOutputDirectory