由于NuGet程序包还原错误,.NET项目的VS Build失败

时间:2018-10-02 13:23:01

标签: c# visual-studio nuget postsharp build-error

我正在使用Visual Studio 17中使用.NET 4.5.2的MVC.NET项目,该项目由于以下错误而无法构建:

  

该版本恢复了NuGet软件包。再次构建项目以将这些包包括在构建中。有关更多信息,请参见http://www.postsharp.net/links/nuget-restore

我的PostSharp版本是4.1.30。

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

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

我已经尝试还原我的NuGet软件包,重新启动计算机,甚至删除我的存储库,然后重新检查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>

我尝试将其删除以查看会发生什么,但是也许没有令人惊讶的是它没有构建并且没有报告任何错误。

1 个答案:

答案 0 :(得分:2)

这似乎与PostSharp NuGet软件包的升级有关。在您的.csproj文件中,安装了PostSharp 4.1.25,但是您说您正在使用PostSharp 4.1.30。

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

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

请注意,不再支持PostSharp 4.1。有关受支持版本的列表,请参见https://www.postsharp.net/support/policies#support