2010-12-15 2 views
6

Я установил MonoDevelop 2.4.1 с Mono 2.8.1. Моя проблема в том, что я не могу добавить ссылку на сборку, скомпилированную для .NET 4.0 (в той же среде разработки MonoDevelop).Невозможно добавить ссылку на сборку .NET 4.0 в MonoDevelop 2.4.1

Что я делаю. Ссылки -> Редактировать ссылки -> .NET Assembly -> Просмотр в файле & выберите его

Than MD отображает ошибку, которую сборка, которую я пытаюсь добавить, не является сборкой .NET. Я установил профиль для .NET 4.0 повсюду.

Рефлектор разбирает мое устройство в порядке, так что все в порядке. Моя ОС - Windows 7 Что случилось?

UPD: Опубликовано ошибка для Novell. Здесь https://bugzilla.novell.com/show_bug.cgi?id=659894

ответ

5

Когда я делаю "C:\Program Files\Mono-2.8.1\bin\mono.exe" "C:\Program Files\MonoDevelop\bin\MonoDevelop.exe", проблема исчезает.

Понятно, что при запуске MonoDevelop.exe он запускается в Microsoft .NET, и проблема в том, что MonoDevelop (сборка .NET 2.0) не может распознать сборку (.NET 4.0) с использованием API 2.0.

Давайте посмотрим на код (MonoDevelop.Ide.Projects.AssemblyReferencePanel):

private void SelectReferenceDialog(object sender, EventArgs e) 
{ 
    string[] array = new string[this.chooser.Filenames.Length]; 
    this.chooser.Filenames.CopyTo(array, 0); 
    foreach (string str in array) 
    { 
     bool flag = true; 
     try 
     { 
      AssemblyName.GetAssemblyName(Path.GetFullPath(str)); 
     } 
     catch 
     { 
      flag = false; 
     } 
     if (flag) 
     { 
      this.selectDialog.AddReference(new ProjectReference(ReferenceType.Assembly, str)); 
     } 
     else 
     { 
      MessageService.ShowError(GettextCatalog.GetString("File '{0}' is not a valid .Net Assembly", str)); 
     } 
    } 
} 

Линия AssemblyName.GetAssemblyName(Path.GetFullPath(str)); является источником всех зол. Я собираюсь опубликовать отчет об ошибке для новелла. Или это не ошибка?

+1

Это ошибка, пожалуйста, зарегистрируйте ее. Мы должны использовать Mono.Cecil для чтения имени сборки, как это делается в основном коде обработки выполнения. – 2010-12-16 10:51:39