首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在类库(没有Application.UserAppDataPath对象)中构建应用程序?

如何在类库(没有Application.UserAppDataPath对象)中构建应用程序?
EN

Stack Overflow用户
提问于 2009-11-15 15:29:01
回答 3查看 2.4K关注 0票数 2

Winforms和控制台应用程序可以使用Application.UserAppDataPath。如果我想要从dll构建相同的路径,该怎么办?我该怎么做呢?我知道Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)会是一个开始。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-11-15 18:21:12

您可以从DLL使用Application.UserAppDataPath -只需从DLL项目添加对System.Windows.Forms程序集的引用即可。

但是,请注意,如果您的动态链接库在Windows Service或服务器应用程序(如ASP.NET )中使用,则它可能在没有配置文件的服务帐户下运行-在这种情况下,UserAppDataPath将不存在。这可能是应用程序类位于System.Windows.Forms命名空间中的主要原因。

票数 0
EN

Stack Overflow用户

发布于 2011-03-01 08:27:02

这是一个可以做你想做的事情的方法。这在WPF应用程序中有效,无需添加System.Windows.Forms.dll。

代码语言:javascript
复制
public string GetUserAppDataPath()
{
  string path = string.Empty;
  System.Reflection.Assembly assm;

  try
  {
    assm = System.Reflection.Assembly.GetEntryAssembly();
    Type at = typeof(System.Reflection.AssemblyCompanyAttribute);
    object[] r = assm.GetCustomAttributes(at, false);
    System.Reflection.AssemblyCompanyAttribute ct = ((System.Reflection.AssemblyCompanyAttribute)(r[0]));

    path = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
    path += @"\" + ct.Company;
    path += @"\" + assm.GetName().Version.ToString();
  }
  catch 
  {        
  }

  return path;
}
票数 1
EN

Stack Overflow用户

发布于 2009-11-15 15:32:55

如果您没有可以使用的应用程序对象,那么您可以从前面提到的获取"ApplicationData“文件夹路径开始,然后将默认的文件夹结构附加到该路径上。

公司名称/产品名称

是默认的附加项目

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1736882

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档