首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >生成错误,此项目引用NuGet

生成错误,此项目引用NuGet
EN

Stack Overflow用户
提问于 2015-12-25 18:36:59
回答 9查看 173.2K关注 0票数 55

当我试图构建我的解决方案时,我会收到以下错误消息:

严重性代码描述项目文件行抑制状态错误此项目引用此计算机上缺少的NuGet包。使用NuGet包还原来下载它们。有关更多信息,请参见http://go.microsoft.com/fwlink/?LinkID=322105。缺少的文件是..\packages\Microsoft.Net.Compilers.1.1.1\build\Microsoft.Net.Compilers.props.MusicKarma C:\User\Bryan\Documents\Visual 2015\Projects\MusicKarma\MusicKarma.csproj 268

当我查看包文件夹时,我可以找到名为Microsoft.Net.Compilers.props的文件。

我试过使用Nuget还原,但它一直说我有所有的包。

当我将这个项目从TFS带到我的一台计算机时,就会发生这种情况。

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2015-12-26 12:43:11

首先,我将检查您的MusicKarma项目的packages.config文件中是否有Microsoft.Net.Compilers。如果没有,那么可以从NuGet包中删除与该MusicKarma.csproj包相关的所有内容。

如果您使用的是Microsoft.Net.Compilers NuGet包,那么我的猜测是路径不正确。查看错误消息中的目录名,我猜想MusicKarma解决方案文件(.sln)与MusicKarma.csproj位于同一个目录中。如果是这样,那么packages目录可能是错误的,因为默认情况下,packages目录将位于解决方案目录中。因此,我假设您的软件包目录是:

代码语言:javascript
运行
复制
C:\Users\Bryan\Documents\Visual Studio 2015\Projects\MusicKarma\packages

当您的MusicKarma.csproj文件正在寻找道具文件时,请参见:

代码语言:javascript
运行
复制
C:\Users\Bryan\Documents\Visual Studio 2015\Projects\packages\Microsoft.Net.Compilers.1.1.1\build

因此,如果是这样,那么您可以通过编辑MusicKarma.csproj文件中的路径或重新安装NuGet包来解决问题。

票数 32
EN

Stack Overflow用户

发布于 2018-11-09 18:30:05

对我和其他人来说,快速解决方案就像一种魅力:

如果使用VS 2015+,只需从项目的.csproj文件中删除以下行:

代码语言:javascript
运行
复制
  <Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
  <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
    <PropertyGroup>
      <ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them.  For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
    </PropertyGroup>
    <Error Condition="!Exists('$(SolutionDir)\.nuget\NuGet.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\.nuget\NuGet.targets'))" />
  </Target>

在VS 2015+解决方案资源管理器中:

  1. 右键单击项目名称->卸载项目
  2. 右击项目名称->编辑.csproj
  3. 从文件中删除上面指定的行并保存
  4. 右键单击项目名称-> Reload项目
票数 46
EN

Stack Overflow用户

发布于 2016-01-27 13:37:06

当我在文件系统中创建文件夹(不是在我的解决方案中)并移动一些项目时,出现了这个问题。

结果表明,包路径与csproj文件是相对的。因此,我不得不更改引用的"HintPath“:

代码语言:javascript
运行
复制
<Reference Include="EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
    <HintPath>..\packages\EntityFramework.6.1.3\lib\net45\EntityFramework.dll</HintPath>
    <Private>True</Private>
</Reference>

至:

代码语言:javascript
运行
复制
<Reference Include="EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
    <HintPath>..\..\packages\EntityFramework.6.1.3\lib\net45\EntityFramework.dll</HintPath>
    <Private>True</Private>
</Reference>

注意'HintPath‘中的双"..\“。

我还必须更改错误条件,例如,我必须更改:

代码语言:javascript
运行
复制
<Error Condition="!Exists('..\packages\Microsoft.Net.Compilers.1.1.1\build\Microsoft.Net.Compilers.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.Net.Compilers.1.1.1\build\Microsoft.Net.Compilers.props'))" />

至:

代码语言:javascript
运行
复制
<Error Condition="!Exists('..\..\packages\Microsoft.Net.Compilers.1.1.1\build\Microsoft.Net.Compilers.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Microsoft.Net.Compilers.1.1.1\build\Microsoft.Net.Compilers.props'))" />

再次注意双"..\“。

票数 42
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34465376

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档