我试图让新的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。
有没有办法使用单个命令进行恢复和构建?
答案 0 :(得分:18)
MSBuild 15.5将引入实现此功能的a /restore
flag。
在此之前,理论上可以在同一个调用(/t:Restore;Build
)中运行还原和构建,但它是不安全,因为MSBuild可能会缓存项目文件而不会看到更改通过NuGet恢复。 /restore
选项将在恢复正常构建之前清除所有受影响的缓存。