Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 获取执行项目c中文件的路径#_C#_.net Assembly_Filepath_Opennlp - Fatal编程技术网

C# 获取执行项目c中文件的路径#

C# 获取执行项目c中文件的路径#,c#,.net-assembly,filepath,opennlp,C#,.net Assembly,Filepath,Opennlp,我在解决方案中有两个独立的项目 第一个项目只是一个测试控制台项目。 第二个项目是公共库项目 我在公共Lib项目中有一个静态类,它包含一个静态方法,需要读取文件(对于OpenNLP) 我将文件“EnglishSD.nbin”添加到公共库项目中。我将该文件的属性更改为“Content”和“Copy always”。它会将该文件添加到公共库项目的bin/debug文件夹中。 编辑:“EnglishSD.nbin”位于OpenNLP/EnglishSD.nbin文件夹中 问题:当我运行测试控制台项目时,

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

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

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

我将文件“EnglishSD.nbin”添加到公共库项目中。我将该文件的属性更改为“Content”和“Copy always”。它会将该文件添加到公共库项目的bin/debug文件夹中。 编辑:“EnglishSD.nbin”位于OpenNLP/EnglishSD.nbin文件夹中

问题:当我运行测试控制台项目时,该项目使用公共库项目中的静态功能。它试图在测试控制台项目的bin文件夹中查找'EnglishSD.nbin',而不是公共库项目。这将导致“FileNotFound”错误


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

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

但是你可以设置它。使用测试控制台项目的生成后事件,手动复制所需的文件(我假设您的公共库项目文件夹是
/Common Lib
):

copy“$(SolutionDir)Common Lib\EnglishSD.nbin”“$(TargetDir)”
那么您的测试控制台是否引用了您的Common Lib?然后,当您构建测试控制台时,
CommonLib.dll
将被复制到测试控制台项目文件夹中。我不知道是否有一种自动复制由主项目引用的库的依赖项的方法

但是你可以设置它。使用测试控制台项目的生成后事件,手动复制所需的文件(我假设您的公共库项目文件夹是
/Common Lib
):

copy“$(SolutionDir)Common Lib\EnglishSD.nbin”“$(TargetDir)”

我的坏人。实际上我的文件夹里有“EnglishSD.nbin”。因此,它在TestConsole项目bin/debug中创建了一个文件夹,并将文件放在那里

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

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

我的坏人。实际上我的文件夹里有“EnglishSD.nbin”。因此,它在TestConsole项目bin/debug中创建了一个文件夹,并将文件放在那里

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

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