如何更改模块 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.Targets
和 ModulePackage.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>
我正在尝试编译 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.Targets
和 ModulePackage.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>