我有这方面的工作代码,但我想要优化它。
我有一个MVC Web api,我试图用新结构构建这个应用程序。我有项目,我还有两个类库的项目。在其中一个类库中,我有一个文件夹" files"包含我想要检索的文件。
结构:
我有这段代码:
char separator = Path.DirectorySeparatorChar;
string startupPath = AppDomain.CurrentDomain.RelativeSearchPath;
string[] pathItems = startupPath.Split(separator);
string projectPath = string.Join(separator.ToString(),
pathItems.Take(pathItems.Length - 1)) + ".Handler";
string path = Path.Combine(projectPath, "WebRequestHandlers\\Files" + separator + "Domains.ini");
本守则有效。
我不喜欢我必须硬编码的事实
" .Handler"
到项目路径以使其工作。我的问题是,如何从AppDomain访问类库,例如:
Appdomain.CurrentDomain.SomeMethodToLibary
答案 0 :(得分:2)
因为您按照开发文件夹层次结构获取文件路径,所以只是我或您正在做的事情一旦发布您的应用程序将无法工作吗?
您应该做的是更改“构建操作”和“复制到输出目录”,如下所示:
使用这些选项,文件将被复制到主解决方案的“bin”目录(或文件所在的bin匹配的子文件夹。您应该检查)。 该文件将始终位于同一位置,并将发布。
所以现在文件的路径是这样的:
string startupPath = AppDomain.CurrentDomain.RelativeSearchPath;
string path = Path.Combine(startupPath, "WebRequestHandlers", "Files", "Domains.ini");