MSBuildタスクからMono.Cecilを使用していますが、アセンブリを解決する方法に問題が発生しました。Silverlightバージョンではなく.NETバージョンのPrismを採用しています。Prismの.NETバージョンにはが含まれていMicrosoft.Practices.Prism.Regions.Behaviors.TabControlRegionSyncBehavior
ないため、そのタイプを解決できません。
中間出力でタスクを実行しているため、参照されているアセンブリはそのフォルダーにありません。アセンブリの検索パスは、MSBuildスクリプトでReferencePathに設定されています。
Mono.Cecilは、この関数で名前ベースのマッチングを行います。
AssemblyDefinition SearchDirectory (AssemblyNameReference name, IEnumerable<string> directories, ReaderParameters parameters)
{
var extensions = new [] { ".exe", ".dll" };
foreach (var directory in directories) {
foreach (var extension in extensions) {
string file = Path.Combine (directory, name.Name + extension);
if (File.Exists (file))
return GetAssembly (file, parameters);
}
}
return null;
}
ランタイム(Silverlightと.NET)を比較する方法はありますか?問題を回避する他の方法はありますか?メタデータバージョンを使用するのは賢明ですか?