Не удается добавить ссылку на сборку .NET 4.0 в MonoDevelop 2.4.1 - PullRequest
6 голосов
/ 15 декабря 2010

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

Что я делаю.Ссылки -> Изменить ссылки -> Сборка .NET -> Перейдите к файлу и выберите его

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

Отражатель хорошо разбирает мою сборку, так что все в порядке.Моя ОС - Windows 7 Что не так?

UPD: Опубликовал ошибку в Novell.Вот оно https://bugzilla.novell.com/show_bug.cgi?id=659894

1 Ответ

5 голосов
/ 16 декабря 2010

Когда я делаю "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)); является источником всего зла.Я собираюсь опубликовать отчет об ошибках в novell.Или это не ошибка?

...