Включение DLL в качестве встроенного ресурса в проект WPF

Я подписан на http://blogs.msdn.com/b/microsoft_press/archive/2010/02/03/jeffrey-richter-excerpt-2-from-clr-via-c -third-edition.aspx

Я добавил WPFToolkit.Extended.dll в свое решение и установил для него действие сборки Embedded Resource.

В App.OnStartup (StartupEventArgs e) у меня есть следующий код:

AppDomain.CurrentDomain.AssemblyResolve += (sender, args) =>
{
    String resourceName = "AssemblyLoadingAndReflection." + new AssemblyName(args.Name).Name + ".dll";
    String assemblyName = Assembly.GetExecutingAssembly().FullName;
    Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(resourceName);
    using (stream)
    {
        Byte[] assemblyData = new Byte[stream.Length];
        stream.Read(assemblyData, 0, assemblyData.Length);
        return Assembly.Load(assemblyData);
    }
};

Отладчик обращается к этому блоку кода дважды.

Первый раз:

resourceName is "AssemblyLoadingAndReflection.StatusUtil.resources.dll"
assemblyName is "StatusUtil, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
stream is null

Второй раз:

resourceName is "AssemblyLoadingAndReflection.WPFToolkit.Extended.resources.dll"
assemblyName is "StatusUtil, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
stream is null

Код генерирует исключение, когда попадает в поток. Длина, si ноль.

Я не могу использовать ILMerge, потому что это проект WPF.

5
задан epalm 23 June 2011 в 17:51
поделиться