MSBuild 15 NuGet恢复和构建

时间:2017-10-16 15:21:53

标签: .net visual-studio msbuild nuget

我试图让新的MSBuild NuGet恢复功能正常工作并遇到一个奇怪的问题。

如果我这样做:

msbuild.exe mySolution.sln /p:Configuration=Release

我收到有关丢失包裹的错误消息。这是预期的行为。 但是,如果我这样做:

msbuild.exe mySolution.sln /p:Configuration=Release /t:restore

MSBuild"成功"但只是创建一个obj文件夹,其中包含一些与NuGet还原相关的文件,即没有bin \ Release \文件夹。

为了恢复构建,我必须发出上述两个命令(显然首先恢复)。

我已升级所有packages.config文件以使用.csproj文件中的最新PackageReference。

有没有办法使用单个命令进行恢复和构建?

1 个答案:

答案 0 :(得分:18)

MSBuild 15.5将引入实现此功能的a /restore flag

在此之前,理论上可以在同一个调用(/t:Restore;Build)中运行还原和构建,但它是不安全,因为MSBuild可能会缓存项目文件而不会看到更改通过NuGet恢复。 /restore选项将在恢复正常构建之前清除所有受影响的缓存。