今天尝试在 Visual Studio 2005 中打开 Visual Studio 2008项目时出现此错误:
未找到导入的项目“C:\Microsoft.CSharp.targets”。
今天尝试在 Visual Studio 2005 中打开 Visual Studio 2008项目时出现此错误:
未找到导入的项目“C:\Microsoft.CSharp.targets”。
在记事本(或记事本++)中打开您的 csproj 文件找到以下行:
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
并将其更改为
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
这是一个全局解决方案,不依赖于特定的包或 bin。
就我而言,我从根目录中删除了Packages文件夹。
也许是因为你的包在那里,但编译器没有找到它的参考。所以首先删除旧包并添加新包。
添加新包的步骤
这不是正确的解决方案,但我在这里发布它,因为我面临同样的问题。
就我而言,我什至无法在 Visual Studio 中打开我的解决方案,也没有得到其他 SO 答案的任何帮助。
对我来说,问题是项目的路径包含 %20 个字符,因为 git 在克隆存储库时添加了这些字符而不是空格。另一个问题可能是包的路径是否太长。
就我而言,我无法在我的解决方案中加载5个项目中的一个。
它有助于关闭 Visual Studio,我不得不删除 Microsoft.Net.Compilers.1.3.2
文件夹下的 nuget 文件packages
夹。
之后,再次打开您的解决方案并按预期加载项目
可以肯定的是,在删除文件夹之前关闭所有 VS 实例。
MSDN 上的这个链接也有助于理解它不起作用的原因。$(MSBuildToolsPath) 是 Microsoft.Build.Engine v3.5 的路径(在 VS2008 中创建时自动插入到项目文件中)。如果您尝试为 .Net 2.0 构建项目,请确保将此路径更改为 $(MSBuildBinPath),它是 Microsoft.Build.Engine v2.0 的路径。
我曾经在 csproj 文件中有以下行:
<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,我可以在 New Project 窗口中看到 Silverlight 项目类型,但打开一个不起作用。解决方案很简单:我必须安装 Silverlight Developer 运行时和/或 Microsoft Silverlight 4 Tools for Visual Studio。这可能看起来很愚蠢,但我忽略了它,因为我认为它应该可以工作,因为 Silverlight 项目类型可用。
就我而言,我在记事本中打开了 .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')" />
好的,如果它这样说怎么办:在 gt/lt 标志之间
导入项目="$(MSBuildExtensionsPath)\Microsoft\Silverlight\v3.0\Microsoft.Silverlight.CSharp.targets" /
如何修复目标错误?
我还在一个演示项目中发现了导入字符串(特别是 Rob Eisenburg 的“构建你自己的 MVVM 框架”)。
如果您用 lomaxx VS2010 RTM 报告您需要安装的建议替换该导入。
对于带有 的错误Microsoft.WebApplications.targets
,您可以:
这是帖子。
在您安装了 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)。
我删除了 obj 文件夹,然后按预期加载了项目。
有时问题可能与 .csproj 文件中的硬编码 VS 版本有关。如果你的 csproj 中有这样的东西:
[...]\VisualStudio\v12.0\WebApplications\Microsoft.WebApplication.targets"
您应该检查数字是否正确(错误的原因可能是项目是使用另一个版本的 Visual Studio 创建的)。如果错误,请将其替换为您当前版本的构建工具或使用 VS 变量:
[...]\VisualStudio\v$(VisualStudioVersion)\WebApplications\Microsoft.WebApplication.targets"
我在执行 Ansible 剧本时遇到了这个问题,所以我想在这里添加我的 2 美分。我注意到一条关于缺少 Visual Studio 14 的警告消息。Visual Studio 版本 14 于 2015 年发布,我的问题的解决方案是在我的 Azure DevOps 代理的主机上安装 Visual Studio 2015 Professional。
在尝试恢复、关闭 VS、删除失败的包、重新打开、尝试恢复后,我多次删除了包中的所有内容,当我进行恢复时,它运行良好。
对我来说,问题是路径。在克隆名称中有空格的项目时。项目文件夹被命名"Sample%20-%205"
而不是它应该是什么:"Sample - 5"
打开项目很好,但是构建失败了
找不到文件:/packages/Microsoft.Net.Compilers.1.3.2/tools/Microsoft.CSharp.Core.targets