我正在尝试使新的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。
是否可以使用单个命令来还原和构建?
最佳答案
MSBuild 15.5将引入实现此功能的a /restore
flag。
在此之前,理论上可以在同一调用中运行恢复和构建(/t:Restore;Build
),但是不安全是不安全的,因为MSBuild可能会缓存项目文件,而看不到NuGet还原所做的更改。 /restore
选项将在恢复正常构建之前清除所有受影响的缓存。
关于.net - MSBuild 15 NuGet还原和构建,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46773698/