Error: *.csproj could not import "$(MSBuildBinPath)\Microsoft.CSharp.targets" on MonoDevelop

Error: *.csproj could not import "$(MSBuildBinPath)\Microsoft.CSharp.targets" on MonoDevelop

所以,我在 Linux Mint 16 上安装了 MonoDevelop v5.7。 我用默认代码创建了新的 C# ConsoleProject

使用系统;

命名空间 Lab1
{
    class 主类
    {
        public static void Main (string[] args)
        {
            Console.WriteLine ("Hello World!");
        }
    }
}

并尝试构建它 F7。 之后出现错误:错误:/../../Lab1/Lab1/Lab1.csproj:/../../Lab1/Lab1/Lab1.csproj 无法导入“$(MSBuildBinPath)\Microsoft.CSharp.targets “(实验室 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 为目标,但我猜该版本未安装。让我们通过搜索丢失的文件找到已安装的版本:

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

在我的机器上,列出了 /usr/lib/mono/4.5/Microsoft.CSharp.targets,但您可能有不同的 .NET 版本。忽略 xbuild 和 msbuild 路径。

无论它存在于何处,转到您的项目,单击解决方案窗格中项目旁边的设置按钮(带有齿轮图像的下拉按钮),然后单击 "Options"。然后在 "Build" 下,您会看到 "General",单击它并将您的 "Target framework" 更改为文件夹包含 Microsoft.CSharp.targets 文件的 .NET 版本。就我而言,这是 4.5。

希望这对某人有所帮助。

我的问题是我不小心删除了项目的 packages.config 文件。

如果是单声道错误。

所以打开项目菜单 选择 Build-> General 然后选择安装的框架。

我在 3.5 上工作,但在单声道上只安装了 4.5 和 4.5.1。

选择框架后,系统询问我是继续使用 2010 年还是 2012 年,您选择其中一个。 由于原始程序是用 2008 和 Win7 上的 3.5 编写的。一定是这个原因。 我是这样解决的。