在执行项目c#

时间:2017-09-22 18:48:23

标签: c# .net-assembly filepath opennlp

我在解决方案中有两个独立的项目。

第一个项目只是一个测试控制台项目。 第二个项目是 Common Lib 项目。

我在 Common Lib 项目中有静态类,它包含一个需要读取文件的静态方法(对于OpenNLP)。

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

我将文件“EnglishSD.nbin”添加到 Common Lib 项目中。我将该文件的属性更改为“内容”和“始终复制”。它会将该文件添加到 Common Lib 项目的bin / debug文件夹中。 编辑:'EnglishSD.nbin'位于OpenNLP / EnglishSD.nbin文件夹

问题:当我运行测试控制台项目时,它使用 Common lib 项目中的静态函数。它试图在测试控制台项目的bin文件夹中查找“EnglishSD.nbin”,而不是 Common Lib 项目。这会导致'FileNotFound'错误。

有没有办法获取文件的路径而不必担心从哪里调用它?

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

我的坏人。我实际上有英语SD.nbin&#39;在文件夹中。因此,它在TestConsole项目bin / debug中创建了一个文件夹,并在那里放置了文件。

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

/_search?sort=@timestamp:desc&size=1&q=_missing_:version_pre