Error: *.csproj could not import “$(MSBuildBinPath)Microsoft.CSharp.targets” on MonoDevelop
所以,我在LinuxMint16上有MonoDevelopv5.7。我创建了一个新的带有默认代码的控制台项目
1 2 3 4 5 6 7 8 9 10 11 12 | using System; namespace Lab1 { class MainClass { public static void Main (string[] args) { Console.WriteLine ("Hello World!"); } } } |
并尝试建立它F7。之后出现错误:error:/…/…/lab1/lab1/lab1.csproj:…/…/lab1/lab1/lab1.csproj无法导入"$(msbuildbinpath)microsoft.csharp.targets"(lab1)。有人有什么建议吗?
我知道这很晚了,但在我的例子中,Mono的目标是一个没有安装的.NET版本。这是通过更改目标框架来解决的。
我在sln文件上运行
1 | xbuild myProject.sln |
我有点像:
1 | warning : Could not find project file /usr/lib/mono/3.5/Microsoft.CSharp.targets, to import. Ignoring. |
警告表明该项目默认为面向.NET 3.5,但我猜未安装该版本。让我们通过搜索丢失的文件来查找安装的版本:
1 | find /usr/lib/mono -name"Microsoft.CSharp.targets" |
在我的机器上,列出了
无论它存在于何处,请转到项目,在解决方案窗格中单击项目旁边的设置按钮(带有齿轮图像的下拉按钮),然后单击"选项"。然后在"构建"下,您将看到"常规",单击它并将"目标框架"更改为.NET版本,其中文件夹包含microsoft.csharp.targets文件。在我的例子中,这是4.5。
希望这能帮助别人。
我的问题是我不小心删除了项目的
如果是单声道错误。
所以打开项目菜单选择build->general并选择已安装的框架。
我在3.5上工作,但在Mono上只安装了4.5和4.5.1。
在选择了框架之后,我被问到是否要继续2010年或2012年,你可以选择其中一个。因为最初的程序是在2008年和Win7的3.5版本上编写的。这一定是原因。我用这种方法解决了。