Ошибка: *.csproj не смог импортировать "$ (MSBuildBinPath)\Microsoft.CSharp.targets" в MonoDevelop

Итак, у меня есть MonoDevelop v5.7 на Linux Mint 16. Я создаю новый С# ConsoleProject с кодом по умолчанию на нем

using System;

namespace Lab1
{
    class MainClass
    {
        public static void Main (string[] args)
        {
            Console.WriteLine ("Hello World!");
        }
    }
}

и попытайтесь построить его F7. После этого у меня есть ошибка: Ошибка:/../../Lab1/Lab1/Lab1.csproj:/../../Lab1/Lab1/Lab1.csproj не удалось импортировать "$ (MSBuildBinPath)\Microsoft.CSharp.targets" (Lab1). Есть ли у кого-нибудь предложения?

Ответ 1

Я знаю, что это поздно, но в моем случае Mono нацелилась на версию .NET, которая не была установлена. Это фиксируется изменением целевой структуры.


Я нашел проблему, запустив xbuild в файле sln:

xbuild myProject.sln

У меня есть что-то вроде:

warning : Could not find project file /usr/lib/mono/3.5/Microsoft.CSharp.targets, to import. Ignoring.

Предупреждение указывает, что проект по умолчанию настроен на таргетинг .NET 3.5, но я предполагаю, что эта версия не была установлена. Вы можете найти версию, установленную IS, для поиска этого отсутствующего файла:

find /usr/lib/mono -name "Microsoft.CSharp.targets"

На моей машине был указан /usr/lib/mono/4.5/Microsoft.CSharp.targets, но у вас может быть другая версия .NET. Игнорируйте пути xbuild и msbuild.

Где бы он ни был для вас, перейдите в свой проект, нажмите кнопку настроек рядом с вашим проектом в панели решений (выпадающая кнопка с изображением шестерни) и нажмите "Параметры". Затем в разделе "Сборка" вы увидите "Общие", щелкните по нему и измените "Целевую структуру" на версию .NET, где папка содержит файл Microsoft.CSharp.targets. В моем случае это 4.5.

Надеюсь, это поможет кому-то.

Ответ 2

Моя проблема заключалась в том, что я случайно удалил файл packages.config для проекта.

Ответ 3

Если это моно ошибка.

Открыть меню "Открыть проект" Выберите "Создать" > "Общие" и выберите установленную инфраструктуру.

Я работал над 3.5, но на моно был установлен только 4.5 и 4.5.1.

После выбора рамки меня спросят, продолжу ли я 2010 или 2012 год, вы выберете один из них. Поскольку оригинальная программа была написана с 2008 года и по 3,5 на Win7. Это должно быть причиной. Я решил таким образом.