如何更改模块 FormAndList(又名 UserDefinedTable)中 MsBuildTasks 包文件夹的路径?

How can I change path for packages folder for MsBuildTasks in module FormAndList (aka UserDefinedTable)?

我正在尝试编译 DNN 模块 FormAndList(又名 UserDefinedTable),同时我将它的项目包含到解决方案中,该解决方案位于不同的目录(3 个文件夹以上)。我编辑了 MSBuild.Community.Tasks.Targets 文件,以便它可以找到库 MSBuild.Community.Tasks.dll 的正确路径。它适用于调试模式,但是当我在发布模式下编译它时,它会给我这个错误:

The "MSBuild.Community.Tasks.XmlRead" task could not be loaded from the assembly D:\Projects\SolutionFolder\Host\DesktopModules\UserDefinedTable\BuildScripts\MSBuild.Community.Tasks.dll. Could not load file or assembly 'file:///D:\Projects\SolutionFolder\Host\DesktopModules\UserDefinedTable\BuildScripts\MSBuild.Community.Tasks.dll' or one of its dependencies. The system cannot find the file specified. Confirm that the <UsingTask> declaration is correct, that the assembly and all its dependencies are available, and that the task contains a public class that implements Microsoft.Build.Framework.ITask.

我将 MSBuild.Community.Tasks.TargetsModulePackage.targets 文件与另一个模块进行了比较,它工作得很好,但我没有发现它们之间有任何重要区别。

问题是在编译期间它试图找到 MSBuild.Community.Tasks.dll 构建脚本所在的 iside 文件夹,但它应该在 D:\Projects\SolutionFolder\packages\MSBuildTasks.1.5.0.235\tools 中搜索它。 我已经编辑了我在 .csproj 和 MSBuild.Community.Tasks.Targets 中找到的所有路径,但它仅适用于调试模式。我错过了什么?

在你的项目中你有这样的东西:

<Import Project="..\..\..\packages\MSBuildTasks.1.5.0.235\build\MSBuildTasks.targets" Condition="Exists('..\..\..\packages\MSBuildTasks.1.5.0.235\build\MSBuildTasks.targets')" />

<Import Project="packages\MSBuildTasks.1.5.0.235\build\MSBuildTasks.targets" Condition="Exists('packages\MSBuildTasks.1.5.0.235\build\MSBuildTasks.targets')" />

我认为您不需要这些行。

也尝试使用:

<MSBuildCommunityTasksPath>$(SolutionDir)\packages\MSBuildTasks.1.5.0.235\tools</MSBuildCommunityTasksPath>