C# 获取执行项目c中文件的路径#
我在解决方案中有两个独立的项目 第一个项目只是一个测试控制台项目。 第二个项目是公共库项目 我在公共Lib项目中有一个静态类,它包含一个静态方法,需要读取文件(对于OpenNLP) 我将文件“EnglishSD.nbin”添加到公共库项目中。我将该文件的属性更改为“Content”和“Copy always”。它会将该文件添加到公共库项目的bin/debug文件夹中。 编辑:“EnglishSD.nbin”位于OpenNLP/EnglishSD.nbin文件夹中 问题:当我运行测试控制台项目时,该项目使用公共库项目中的静态功能。它试图在测试控制台项目的bin文件夹中查找'EnglishSD.nbin',而不是公共库项目。这将导致“FileNotFound”错误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文件夹中 问题:当我运行测试控制台项目时,
有没有办法获取文件的路径而不必担心从何处调用它?所以您的测试控制台引用了您的公共库?然后,当您构建测试控制台时,
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");