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

Posted

技术标签:

【中文标题】错误:*.csproj 无法在 MonoDevelop 上导入“$(MSBuildBinPath)\\Microsoft.CSharp.targets”【英文标题】:Error: *.csproj could not import "$(MSBuildBinPath)\Microsoft.CSharp.targets" on MonoDevelop错误:*.csproj 无法在 MonoDevelop 上导入“$(MSBuildBinPath)\Microsoft.CSharp.targets” 【发布时间】:2015-04-23 13:02:17 【问题描述】:

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

使用系统; 命名空间 Lab1 类主类 公共静态无效主要(字符串[] args) Console.WriteLine("Hello World!");

并尝试构建它 F7。 之后我有错误:错误:/../../Lab1/Lab1/Lab1.csproj: /../../Lab1/Lab1/Lab1.csproj could not import "$(MSBuildBinPath)\Microsoft.CSharp .targets”(实验室 1)。 有人有什么建议吗?

【问题讨论】:

首先我建议在您的项目上以详细模式运行 xbuild 并查看 MSBuildBinPath 扩展为什么。 您的系统中有什么版本的单声道? 你安装了mono-xbuild吗? 【参考方案1】:

我知道这已经晚了,但就我而言,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 路径。

无论它存在于您的何处,请转到您的项目,单击解决方案窗格中项目旁边的设置按钮(带有齿轮图像的下拉按钮),然后单击“选项”。然后在“构建”下,您将看到“常规”,单击它并将“目标框架”更改为文件夹包含 Microsoft.CSharp.targets 文件的 .NET 版本。就我而言,这是 4.5。

希望这对某人有所帮助。

【讨论】:

【参考方案2】:

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

【讨论】:

【参考方案3】:

如果是单声道错误。

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

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

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

【讨论】:

以上是关于错误:*.csproj 无法在 MonoDevelop 上导入“$(MSBuildBinPath)\Microsoft.CSharp.targets”的主要内容,如果未能解决你的问题,请参考以下文章

Visual Studio 不支持特定的 csproj 文件

WPF 应用程序使用新的 csproj 格式

Visual Studio错误无法打开表单的源代码

无法在 Visual Studio 2008 中打开项目

c# *.csproj文件里的UseVSHostingProcess在VS2005的哪里设置?

防止VS向csproj添加显式编译标签