加载资源程序集但不“锁定”文件

时间:2011-12-14 16:54:56

标签: c# file resourcedictionary .net-assembly

加载包含资源xaml的程序集时遇到问题。 问题是我不允许“锁定”文件,因为更新可能会在以后替换它。

首先我按照这样加载它:

Uri uriProperties;
ResourceDictionary xResources;
uriProperties = new Uri("/xResources;component/xResources.xaml", UriKind.Relative);
xResources = Application.LoadComponent(uriProperties) as ResourceDictionary;

工作得很好。文件未锁定。

现在我遇到了另一个问题,我不得不把它放到另一个组件中。用相对的Uri加载它不再起作用,我现在有一条完整的路径。

我试过了:

Assembly.LoadFrom(xPath + @"/xResources.dll");
xResources = new ResourceDictionary();
xResources.Source = new Uri(@"pack://application:,,,/xResources;component/xResources.xaml"); 

也适用于该应用程序。但它会锁定文件。

如何使用完整路径加载程序集并获取我的resourcedictionary但不锁定文件?

如果没有使用影子复制或更改内容路径等解决方案,那会很好......

1 个答案:

答案 0 :(得分:3)

不确定这是否能解决您的问题,但值得一试:

var bytes = File.ReadAllBytes("assemblypath");
var assembly = Assembly.Load(bytes);