错误:* .csproj无法在MonoDevelop上导入“$(MSBuildBinPath)\ Microsoft.CSharp.targets”

时间:2015-02-22 00:02:46

标签: c# monodevelop

所以,我在Linux Mint 16上有MonoDevelop v5.7。 我使用默认代码创建新的C#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)。 有没有人有任何建议?

3 个答案:

答案 0 :(得分:19)

我知道这已经很晚了,但就我而言,Mono的目标是未安装的.NET版本。这可以通过更改目标框架来解决。

我通过在sln文件上运行xbuild来找到问题:

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路径。

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

希望这有助于某人。

答案 1 :(得分:1)

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

答案 2 :(得分:0)

如果是单声道错误。

所以打开项目菜单 选择Build->一般并选择已安装的框架。

我正在使用3.5但在单声道上只安装了4.5和4.5.1。

在选择框架后,我被问到是否会继续2010年或2012年,您可以选择其中一个。 原始程序是用2008写的,在Win7上用3.5写的。这一定是原因。 我这样解决了。