2017-09-22 141 views
1

我在解决方案中有两个单独的项目。在执行项目c中获取文件的路径#

第一个项目是只是一个测试控制台项目。 而第二个项目是公共库项目。

我有静态类Common Lib包含需要读取文件(用于OpenNLP)的静态方法的项目。

var sentenceDetector = new EnglishMaximumEntropySentenceDetector("EnglishSD.nbin"); 

我添加文件 “EnglishSD.nbin” 到公共库项目。我改变了该文件的属性为“内容”和“始终复制”太多。它确实将该文件添加到bin/debug文件夹Common Lib项目。 编辑:“EnglishSD.nbin”位于夹OpenNLP/EnglishSD.nbin

问题:当我运行测试控制台项目,该项目将使用常见的lib项目静态函数。它试图寻找“EnglishSD.nbin”到测试控制台项目,而不是常见的项目的bin文件夹。这导致'FileNotFound'错误。

有什么办法来获取文件的路径,而不必担心在那里它被称为从?

回答

0

所以你的测试台引用你的Common Lib?然后,当您构建测试控制台时,CommonLib.dll将被复制到测试控制台项目文件夹中。我不知道是否有一种自动的方式来复制主项目引用的库的依赖关系...

但是你可以设置它。使用测试控制台项目的后期生成事件和复制您所需的文件手动(我假设你公共库项目文件夹是/Common Lib):
copy "$(SolutionDir)Common Lib\EnglishSD.nbin" "$(TargetDir)"

0

我的坏人。我确实在文件夹中有'EnglishSD.nbin'。因此它在TestConsole中创建了一个文件夹bin/debug并在那里放置文件。

所以我只需要将路径更改为(FolderName)/EnglishSD.nbin。

var sentenceDetector = new EnglishMaximumEntropySentenceDetector("OpenNLP/EnglishSD.nbin"); 
相关问题