C# 由于NuGet包还原错误,.NET项目的VS生成失败

C# 由于NuGet包还原错误,.NET项目的VS生成失败,c#,visual-studio,nuget,postsharp,build-error,C#,Visual Studio,Nuget,Postsharp,Build Error,我正在Visual Studio 17中使用.NET 4.5.2处理一个MVC.NET项目,该项目由于以下错误而无法生成: 生成还原了NuGet包。再次构建项目以在构建中包含这些包。有关详细信息,请参阅 我的PostSharp版本是4.1.30 每次我构建或重建项目时都会发生此错误,并且在连续构建多次后不会消失。错误发生在引用PostSharp的几个项目中 只有在解决方案中进行更改后,才会发生错误。如果我签出Trunk的新副本,我可以加载网站。只有在有机会发生这些错误之后。更改可能很小,例如在错

我正在Visual Studio 17中使用.NET 4.5.2处理一个MVC.NET项目,该项目由于以下错误而无法生成:

生成还原了NuGet包。再次构建项目以在构建中包含这些包。有关详细信息,请参阅

我的PostSharp版本是4.1.30

每次我构建或重建项目时都会发生此错误,并且在连续构建多次后不会消失。错误发生在引用PostSharp的几个项目中

只有在解决方案中进行更改后,才会发生错误。如果我签出Trunk的新副本,我可以加载网站。只有在有机会发生这些错误之后。更改可能很小,例如在错误引用的不相关项目中添加新的控制器文件

我尝试过恢复我的NuGet软件包,重新启动我的机器,甚至删除我的repo,重新检查Trunk的干净安装。我怎样才能克服这个错误?我不确定这是否确实与PostSharp有关,或者与更普遍的NuGet错误有关

在查看.csproj文件以查看其中一个项目中出现错误的原因后,我发现以下几行:

 <Import Project="packages\PostSharp.4.1.25\tools\PostSharp.targets" Condition="Exists('packages\PostSharp.4.1.25\tools\PostSharp.targets')" />
 <Target Name="EnsurePostSharpImported" BeforeTargets="BeforeBuild" Condition="'$(PostSharp30Imported)' == ''">
    <Error Condition="!Exists('packages\PostSharp.4.1.25\tools\PostSharp.targets')" Text="This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them.  For more information, see http://www.postsharp.net/links/nuget-restore." />
    <Error Condition="Exists('packages\PostSharp.4.1.25\tools\PostSharp.targets')" Text="The build restored NuGet packages. Build the project again to include these packages in the build. For more information, see http://www.postsharp.net/links/nuget-restore." />
  </Target>


我试图删除它,看看会发生什么,但可能令人惊讶的是,它没有生成,也没有报告任何错误

这看起来像是升级PostSharp NuGet软件包的问题。在.csproj文件中,安装了PostSharp 4.1.25,但您说您正在使用PostSharp 4.1.30

以下其中一项可能会有所帮助:

  • 将packages.config中的包版本更改为4.1.25,检查项目是否已生成,然后根据需要使用NuGet package manager升级到新版本
  • 或者从packages.confing和.csproj(显示的行+对PostSharp.dll和任何其他PostSharp.*.dll的引用)中删除PostSharp,然后使用NuGet package manager安装PostSharp

请注意,PostSharp 4.1不再受支持。有关受支持版本的列表,请参阅。

能否尝试从本地文件夹中删除所有包并重新生成项目?别忘了备份文件夹..:D.@Sham-你指的是哪个软件包,来自哪个文件夹?我在窗户上。只是确认一下!可以安全地删除项目文件夹中的packages文件夹,以强制NuGet再次恢复。不过,这对我来说似乎是一个尖锐的问题。在解决方案目录中存在
.sln
的地方会有一个文件夹名
packages
。我是否也应该从错误提到的没有“packages”文件夹的项目中删除“packages.xml”?我只能在我的startup projects文件夹中找到一个packages文件夹(总共有42个项目)。