DotNetNuke模块打包依赖于MSBuildTasks,在NuGet出现之前,MSBuildTasks需要单独安装。很多模块基于这种方式,使用Visual Stuido 2010到2017都还可以工作,可升级到Visual Studio 2019以后,打包时出现错误,需要采用新的方式更新打包脚本。首先,在项目中使用NuGet引用MSBuildTasks的最新版本,然后修改BuildScripts中的MSBuild.Community.Tasks.Targets:
1 | <!-- <MSBuildCommunityTasksLib>$(MSBuildExtensionsPath)\MSBuildCommunityTasks\MSBuild.Community.Tasks.dll</MSBuildCommunityTasksLib> --> |
将原来从本地安装路径的引用改为从项目的packages中引用。关闭解决方案,然后再重新打开,就可以了。
另外,还需要将csproj项目中对原来MSBuild的引用修改为新的引用:
1 | <Import Project="packages\MSBuildTasks.1.5.0.235\build\MSBuildTasks.targets" Condition="Exists('packages\MSBuildTasks.1.5.0.235\build\MSBuildTasks.targets')" /> |
需要注意,上面的代码需要移动到 Condition=” ‘$(Configuration)|$(Platform)’ == ‘Debug|AnyCPU’ “相关代码的前面,否则编译会出错。