将使用AppDomain.CurrentDomain.BaseDirectory获取我的应用程序的基目录

时间:2016-01-29 21:33:25

标签: c# directory console-application

好的我有一个可以在不同服务器上运行的应用程序。我正在使用X509certv2来验证应用程序。我目前在项目本身的Cert。目录下有证书。

enter image description here

代码 我正在尝试使用以下代码从位于项目中的该目录中获取该cert文件

string certfile = AppDomain.CurrentDomain.BaseDirectory+"Certs\\"+ConfigurationManager.AppSettings["ClientCertificatePfx"];

结果: C:\ Users \用户er4505 \下载\ newone \ DHG_0365_Procs \ BIN \调试\证证书\ PKCS.pfx

主要目标: 我想从项目本身获取目录,因为它将被放置在几个服务器上,绝对路径不会削减它。

1 个答案:

答案 0 :(得分:1)

System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase;

上面的代码片段可以帮助您将其缩小到正在执行的DLL。 (通常可能是你的bin文件夹或你在哪里部署你的DLL)看看是否有帮助!

但是,根据你的结果判断,它已经引用了你的bin,所以这可能会再次引导你进入你的Debug文件夹。

我建议您通过右键单击它来转到证书属性,并将“复制到输出目录”属性值更改为“如果更新则复制”这也应该在编译时将您的证书复制到您的输出文件夹(bin)。你应该可以从那里访问它!