找不到导入的项目“ C:\ Microsoft.CSharp.targets”


126

我今天在尝试在Visual Studio 2005中打开Visual Studio 2008 项目时收到此错误:

找不到导入的项目“ C:\ Microsoft.CSharp.targets”。


我必须在文件中将引用从重命名Microsoft.CSharp.Targets为。Microsoft.CSharp.targets.csproj
斯蒂芬·

Answers:


112

在记事本(或notepad ++)中打开csproj文件,找到以下行:

<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />

并将其更改为

<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />

22
矿山说:“ <导入项目=“ $(MSBuildExtensionsPath32)\ ...”
B. Clay Shannon

@Iomaxx,我通过将Monodevelop构建目标从Mono / .NET 3.5更改为Mono / .NET 4.0来解决此问题。
弗兰克,

5
我的已经说过MSBuildBinPath,但它在名称空间中包括CompactFramework:<Import Project =“ $(MSBuildBinPath)\ Microsoft.CompactFramework.CSharp.targets” />
Teysz

如果您使用的是Monodevelop,则会安装以下软件包:“ mono-msbuild”和“ mono-msbuild-sdkresolver”。注意:已在Linux Manjaro上测试。
爱德华多·卢西奥

如果已安装“ msbuild-stable”(或等效文件)软件包,则需要将其删除。注意:已在Linux Manjaro上测试。
爱德华多·卢西奥

59

这是一个全局解决方案,不依赖于特定的包装或纸箱。

就我而言,我从根目录中删除了Packages文件夹。

可能是因为您的软件包在那儿而发生了,但是编译器没有找到它的引用。因此,请先删除较旧的软件包,然后添加新软件包。

添加新程序包的步骤

  • 首先删除“ packages”文件夹(它将距您当前的项目文件夹不远或仅一步之遥)。
  • 然后重新启动项目或解决方案。
  • 现在,重建解决方案文件。
  • Project将从nuGet软件包管理器获取新引用。您的问题已解决。

这不是适当的解决方案,但我将其发布在这里,因为我遇到了同样的问题。

就我而言,我什至无法在Visual Studio中打开我的解决方案,并且在其他SO答案上也没有得到任何帮助。


1
作为阿尔夫说莫,只要找到该文件在其他地方您的计算机上,并将其复制到它正在搜索的文件夹
Serj萨根

@SerjSagan是的,这将有助于但有时你不能打开在Visual Studio甚至一个解决方案文件,在那个时候我的解决方案将帮助..
巴拉特

5
我在Mac上的Visual Studio上遇到了这个问题,该Microsoft.CSharp.targets文件由于某种原因被删除了!如您所说,我删除了该packages文件夹并重新启动了Visual Studio,神奇地,它起作用了!
A-Sharabiani

1
这为我解决了这个问题,但是我的一位同事第一次能够完成这项工作。尽管这确实可行,但我还有其他东西可以找到!
JakePlatford

1
好兄弟!我为此花了1个小时
Hugo Nava Kopp '18

20

对我来说,问题在于项目的路径包含%20个字符,因为在克隆存储库时git添加了这些字符而不是空格。另一个问题可能是包路径太长。


1
这是我的问题。项目名称中有空格,因此git clone之后的目录名称中包含%20。您可以git clone <RepoUrl> <LocalDirName>用来指定要克隆到的目录名称,以避免出现%20
Dan Cook

11

MSDN上的链接还可以帮助您理解其不起作用的原因。$(MSBuildToolsPath)是Microsoft.Build.Engine v3.5的路径(在VS2008中创建时自动插入到项目文件中)。如果尝试为.Net 2.0构建项目,请确保将此路径更改为$(MSBuildBinPath),这是Microsoft.Build.Engine v2.0的路径。


11

在我来说,我无法加载一个5个项目在我的解决方案。

它有助于关闭Visual Studio,我不得不删除 Microsoft.Net.Compilers.1.3.2文件夹下的nuget文件packages夹。

之后,再次打开您的解决方案,并按预期加载项目

只是要确定,在删除文件夹之前,请关闭VS的所有实例。


6

我以前在csproj文件中包含以下行:

<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />

删除此文件后,它可以正常工作。


6

如果您遇到错误消息Microsoft.CSharp.Core.targets not found,这些是我纠正我的错误的步骤:

  1. 打开任何以前的工作项目文件夹,然后导航到错误中显示的链接,即Projects/(working project name)/packages/Microsoft.Net.Compilers.1.3.2/tools/搜索Microsoft.CSharp.Core.targets文件。

  2. 复制此文件并将其放入非工作项目中tools folder(即,如上图所示,导航到非工作项目中的tools文件夹)

  3. 现在关闭您的项目(如果已打开)并重新打开它。

它应该现在正在工作。

另外,要确保在您现在打开的Visual Studio项目中一切正常,请转到Tools > NuGetPackage Manager > Manage NuGet Packages For Solution。在这里,您可能会发现一个错误,指出另一个应用程序正在使用CodeAnalysis.dll。

再次,转到tools folder,找到指定的文件并将其删除。回到Manage NuGet Packages For Solution。您会找到一个链接,要求您重新加载,单击该链接,然后重新安装所有内容。

您的项目现在应该可以正常工作了。


3

重新安装Windows后,我得到了这个。已安装Visual Studio,并且可以在“新建项目”窗口中看到Silverlight项目类型,但是打开一个无效。解决方案很简单:我必须安装Silverlight Developer运行时和/或用于Visual Studio的Microsoft Silverlight 4工具。这似乎很愚蠢,但是由于Silverlight项目类型可用,因此我认为它应该可以工作,因此我忽略了它。


3

就我而言,我在记事本中打开了.csproj文件,并删除了以下三行。像魅力一样工作:

<Import Project="..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props" Condition="Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" />
<Import Project="..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props" Condition="Exists('..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props')" />
<Import Project="..\packages\Microsoft.Net.Compilers.1.3.2\build\Microsoft.Net.Compilers.props" Condition="Exists('..\packages\Microsoft.Net.Compilers.1.3.2\build\Microsoft.Net.Compilers.props')" />

2

好的,如果这样说:在gt / lt符号之间

导入Project =“ $(MSBuildExtensionsPath)\ Microsoft \ Silverlight \ v3.0 \ Microsoft.Silverlight.CSharp.targets” /

我该如何解决目标错误?

我还在演示项目中找到了导入字符串(特别是Rob Eisenburg的“ Build your own MVVM Framework”)。

如果用lomaxx建议的导入替换该导入,则VS2010 RTM报告需要安装导入。


2

对于的错误Microsoft.WebApplications.targets,您可以:

  1. 在TFS服务器中安装Visual Studio 2010(或与开发计算机相同的版本)。
  2. 将“ Microsoft.WebApplication.targets”从开发计算机文件复制到TFS构建计算机。

这是帖子。


1

在安装了SL 5的情况下,打开在SL 4中构建的Silverlight项目时,也会发生此错误。

这是示例错误消息:找不到导入的项目“ C:\ Program Files(x86)\ MSBuild \ Microsoft \ Silverlight \ v4.0 \ Microsoft.Silverlight.CSharp.targets”。

注意v4.0。

若要解决,请编辑项目并找到:

<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>

并将其更改为v5.0。

然后重新加载项目,它将打开(除非您没有安装SL 5)。



0

有时问题可能与.csproj文件中的VS硬编码版本有关。如果您的csproj中包含以下内容:

[...]\VisualStudio\v12.0\WebApplications\Microsoft.WebApplication.targets"

您应该检查数字是否正确(原因可能是项目是使用其他版本的Visual Studio创建的)。如果有误,请用当前版本的构建工具替换它,或使用VS变量:

[...]\VisualStudio\v$(VisualStudioVersion)\WebApplications\Microsoft.WebApplication.targets"

0

我在执行Ansible剧本时遇到了这个问题,所以我想在这里加2美分。我注意到有关丢失Visual Studio 14的警告消息。VisualStudio版本14于2015年发布,解决此问题的方法是在Azure DevOps代理的主机上安装Visual Studio 2015 Professional。


0

尝试还原后,关闭VS,删除失败的软件包,重新打开,尝试还原,多次,我只是删除了软件包中的所有内容,并且当我进行还原时,它运行良好。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.