我从我的UI Web应用程序中的控制器调用Services类库项目中的帮助器方法。我无法获得服务项目中模板的正确路径。我尝试过几十种方法,但每次完整路径的基本路径都指向UI项目。
C:\用户\ TFD \ OneDrive \ TestEmal.UI \ TestEmal.UI \ BIN \调试\ netcoreapp2.0 \ EmailService \ EmailTemplates \ EmailMaster_Body.html
我正在构建Services类库项目中的路径
private static readonly string ThisDir = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
这来自这篇文章中接受的解决方案,接受了Mark Amery的回答
我已尝试过Path和Assembly的每个排列,但每个都返回Web UI应用程序的路径。
如何在不进行硬编码或使用替换?
的情况下获取Services类库项目的基本路径答案 0 :(得分:0)
你做不到。类库被编译到引用它的应用程序中。构建/发布后,库的DLL与应用程序的所有其他DLL驻留在同一目录中,这意味着任何路径将始终相对于您的Web应用程序目录,而不是您的类库目录。
您在此处尝试实现的目标并不完全清楚,但如果您的类库项目目录中只有一些文件或文件需要引用,则需要将它们添加到项目中并将它们设置为在Visual Studio中的每个文件的属性窗格中复制构建。这将导致文件出现,并最终进入您的Web应用程序的构建/发布目录。您的路径仍然是相对于Web应用程序,而不是类库。
或者,您可以使用构建任务来执行复制,但设置起来要复杂一些。