如何在运行时获取程序集路径,在Web服务器、服务或win应用程序中运行
本文关键字:服务 win 应用程序 运行 服务器 Web 运行时 获取 程序集 路径 | 更新日期: 2023-09-27 18:01:10
我有一个资源项目,用于我们产品的各个部分。为了使其更加灵活,我决定将.resx从使用resgen工具处理的dll外部放置,以允许用户动态添加自己的语言文件。由于该项目将从不同的地方访问,web,服务或独立的winForm,我如何获得.dll所在的路径,以便为提供正确的路径
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
public static global::System.Resources.ResourceManager ResourceManager {
get {
if (object.ReferenceEquals(resourceMan, null)) {
temp = ResourceManager.CreateFileBasedResourceManager("Resources", cwd, null);
resourceMan = temp;
}
return resourceMan;
}
}
我可以对路径进行硬编码,而且效果很好,尽管我宁愿让它在运行时计算出路径。
我试过这样的东西,但它不起作用
string fullPath = System.Reflection.Assembly.GetAssembly(typeof(Resources)).Location;
//get the folder that's in
string theDirectory = Path.GetDirectoryName(fullPath); ResourceManager temp =
"Could not find any resources appropriate for the specified culture (or the neutral culture) on disk.
baseName:Resources locationInfo:fileName:Resources.Resources">
在中发现以下内容
如何获取代码所在程序集的路径?
string codeBase = Assembly.GetExecutingAssembly().CodeBase;
UriBuilder uri = new UriBuilder(codeBase);
var path = Uri.UnescapeDataString(uri.Path);
var theDirectory = Path.GetDirectoryName(path);