关于c#:找不到导入的项目“ C:Microsoft.CSharp.targets”

关于c#:找不到导入的项目“ C:Microsoft.CSharp.targets”

The imported project “C:Microsoft.CSharp.targets” was not found

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

The imported project"C:\Microsoft.CSharp.targets" was not found.


在记事本(或记事本++)中打开您的csproj文件
找到这行:

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

并将其更改为

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

This is a global solution, not dependent on particular package or bin.

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

Maybe it happens because of your packages are there but compiler is not finding it's reference. so remove older packages first and add new packages.

添加新软件包的步骤

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

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

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


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


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


就我而言,我无法在解决方案中加载5个项目中的1个。

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

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

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


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

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

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


如果您遇到表示Microsoft.CSharp.Core.targets not found的错误,这些是我纠正我的错误所采取的步骤:

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

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

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

  • 它应该现在正在工作。

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

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

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


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


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

    1
    2
    3
    <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')" />

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

  • 在TFS服务器中安装Visual Studio 2010(或与开发计算机相同的版本)。
  • 将" Microsoft.WebApplication.targets"从开发计算机文件复制到TFS构建计算机。
  • 这是帖子。


    ok so what if it say this: between the
    gt/lt signs

    Import
    Project="$(MSBuildExtensionsPath)\Microsoft\Silverlight\v3.0\Microsoft.Silverlight.CSharp.targets"
    /

    how do i fix the targets error?

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

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


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

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

    注意v4.0。

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

    1
    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>

    并将其更改为v5.0。

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


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


    我删除了obj文件夹,然后按预期加载了项目。


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

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

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

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

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


    推荐阅读