none
После установки VS2010 и запуска моего проекта появилась проблема... Конкретно с WMPLib. На новых проектах с WMPLib всё нормально, на моём, который писался в VS2008 проблемы. Подробности в теме... RRS feed

  • Вопрос

  • Такая проблема: Я писал проект на Visual Studio 2008, использовал в проекте WMPLib, подключал так - "Проект" - "Добавить ссылку", "COM" - WindowsMediaPlayer. Теперь установил Visual Studio 2010 Ultimate, запускаю свой проект, он преобразовался в проект для 2010 студии (помоему преоразовался только один файл проекта и всё). Далее я пытаюсь запустить проект, доходит до кода помеченного комментарием:

        /// <summary>
        /// Главная точка входа для приложения.
        /// </summary>
        [STAThread]
        static void Main(string[] arguments)
        {
          
          //Включаем визуальные стили раньше, чем будет проверка, чтобы MessageBox выглядел современно
          Application.EnableVisualStyles(); 
          Application.SetCompatibleTextRenderingDefault(false);
    
          const String AppName = "My Program"; //Просто название приложения
          bool oneOnly;
          bool NeedHide = false;
          if (arguments.Length != 0)
          {
            if (arguments[0] == "-hide")
            {
              NeedHide = true;
            }
          }
    
          // Указываем имя своей программы. В нашем случае My Program
          Mutex m = new Mutex(true, AppName, out oneOnly);
          if (oneOnly)
          {
            Application.Run(new FormSetting(NeedHide)); //Выполнение приложения останавливается тут
            ApplicationSettings appSettings = new ApplicationSettings();
          }
          else
          {
            MessageBox.Show("Приложение " + AppName + " уже запущено.");
          } 
        
        }

    [url=http://www.radikal.ru][IMG]http://s42.radikal.ru/i098/1005/a9/52ba333abc11.png[/IMG][/url]

    System.BadImageFormatException не обработано
    Message=Невозможно загрузить файл или сборку "Interop.WMPLib, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" или один из зависимых от них компонентов. Была сделана попытка загрузить программу, имеющую неверный формат.
    Source=MyProgram
    FileName=Interop.WMPLib, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
    FusionLog==== Информация о состоянии предварительной привязки ===
    Журнал: User = Мой-ПК\МоёИмя
    Журнал: DisplayName = Interop.WMPLib, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
    (Fully-specified)
    Журнал: Appbase = file:///D:/Программирование/C# - Visual Studio 2008/MyProgram/WindowsFormsApplication1/bin/Debug/
    Журнал: Initial PrivatePath = NULL
    Вызов сборки: MyProgram, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null.
    ===
    Журнал: данная привязка начинается в контексте загрузки default.
    Журнал: используется файл конфигурации приложения: D:\Программирование\C# - Visual Studio 2008\MyProgram\WindowsFormsApplicat ion1\bin\Debug\MyProgram.vshost.exe .Config.
    Журнал: используется файл конфигурации компьютера из C:\Windows\Microsoft.NET\Framework6 4\v2.0.50727\config\machine.config.
    Журнал: политика в данный момент не применяется к ссылке (личная, пользовательская, частичная привязка сборки или привязка по местоположению).
    Журнал: попытка загрузки нового URL file:///D:/Программирование/C# - Visual Studio 2008/MyProgram/WindowsFormsApplication1/bin/Debug/Interop.WMPLib.DLL.
    Ошибка: не удалось завершить установку сборки (hr = 0x8007000b). Проверка прекращена.
    
    StackTrace:
    в WindowsFormsApplication1.FormSettin g..ctor(Boolean needHide)
    в WindowsFormsApplication1.Program.Ma in(String[] arguments) в D:\Программирование\C# - Visual Studio 2008\MyProgram\WindowsFormsApplicat ion1\Program.cs:строка 38
    в System.AppDomain._nExecuteAssembly( Assembly assembly, String[] args)
    в Microsoft.VisualStudio.HostingProce ss.HostProc.RunUsersAssembly()
    в System.Threading.ExecutionContext.R un(ExecutionContext executionContext, ContextCallback callback, Object state)
    в System.Threading.ThreadHelper.Threa dStart()
    InnerException:


    Далее создаю новый проект, добавляю эту же ссылку, запускаю программу там всё работает, а в моей программе нет. Что за беда? Может кто сталкивался с подобным? Как решить эту проблему?

    Кстати остался старый откомпилированный проет в VS2008, если скопировать из него Interop.WMPLib.dll в папку с программой и запустить в студии, то 1 раз программа запускается без ошибки, если заново построить проект, то опять такая ошибка. Что это может быть?
    • Перемещено Tagore Bandlamudi 2 октября 2010 г. 21:43 MSDN Forums consolidation (От:Разработка Windows-приложений)

Ответы

  • Система x64? Проект собирается в Any CPU? Укажи явно платформу при сборке, скорее всего x86.

    • Помечено в качестве ответа Casper-SC 23 мая 2010 г. 11:10
  • Спасибо! Да система x64 (я про Windows 7 x64, если вы про это конечно же =) ). Сделал так: "Свойства проекта" - "Построение" - Конечная платформа = x86. Всё заработало!
    • Помечено в качестве ответа Casper-SC 23 мая 2010 г. 11:10

Все ответы

  • Система x64? Проект собирается в Any CPU? Укажи явно платформу при сборке, скорее всего x86.

    • Помечено в качестве ответа Casper-SC 23 мая 2010 г. 11:10
  • Спасибо! Да система x64 (я про Windows 7 x64, если вы про это конечно же =) ). Сделал так: "Свойства проекта" - "Построение" - Конечная платформа = x86. Всё заработало!
    • Помечено в качестве ответа Casper-SC 23 мая 2010 г. 11:10