加载资源程序集,但没有“锁定”;该文件

本文关键字:锁定 文件 程序集 资源 加载 | 更新日期: 2023-09-27 18:17:56

加载包含资源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"); 

也在应用程序中工作。但是它会锁定文件。

如何使用完整路径加载程序集并获得我的资源字典,但不锁定文件?

如果有一个不使用阴影复制或更改内容路径等解决方案就好了。

加载资源程序集,但没有“锁定”;该文件

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

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