0

我有一个资源项目用于我们产品的各个部分。为了使其更灵活,我决定将 .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.resources"

4

1 回答 1

0

找到以下工作

如何获取代码所在程序集的路径?

string codeBase = Assembly.GetExecutingAssembly().CodeBase;
UriBuilder uri = new UriBuilder(codeBase);
var path = Uri.UnescapeDataString(uri.Path);
var theDirectory = Path.GetDirectoryName(path);
于 2013-02-26T19:39:13.410 回答