2011-12-14 11 views
1

リソース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を取得するにはどうすればよいですか?シャドウコピーを使用して、コンテンツパスなどを変更することなく、解決策があった場合

は...いいだろう

+0

使用タグ ".net-assembly"を入力してください。 「アセンブリ」というタグは、アセンブリ言語プログラミングに関する質問です。 –

答えて

3

これはあなたの問題を解決しますが、それはショットの価値があるかどうかわからない:

var bytes = File.ReadAllBytes("assemblypath"); 
var assembly = Assembly.Load(bytes); 
関連する問題