【问题标题】:How can I change path for packages folder for MsBuildTasks in module FormAndList (aka UserDefinedTable)?如何更改模块 FormAndList(又名 UserDefinedTable)中 MsBuildTasks 的包文件夹的路径?
【发布时间】:2020-09-03 14:50:21
【问题描述】:

我正在尝试编译 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 中找到的所有路径,但它仅适用于调试模式。我错过了什么?

【问题讨论】:

  • 你能发布你的 csproj 文件吗?还有packages.config
  • 更新。这是带有代码的github链接。 github.com/NetLS2013/DNN_FormAndList_modified。在尝试使模块从 sln 目录中获取包时,我修改了 .csproj、MSBuild.Community.Tasks.Targets 和 packages.config。

标签: c# msbuild dotnetnuke


【解决方案1】:

在你的项目中,你有类似的东西:

<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>

【讨论】:

  • 我已经尝试使用$(SolutionDir) 而不是..\..\..,但它没有帮助。它只是以相同的方式工作,但没有帮助。我在 .csproj 和 MsBuildTasks 的构建脚本中编辑了这些路径。起初我有一个问题,在构建时这个项目找不到包MSBuildTasks.1.5.0.235。使用$(SolutionDir)..\..\.. 在路径中找到它,但随后在MSBuild.Community.Tasks.XmlRead 任务上方出现错误。
  • 我刚刚获得了我公司的许可,可以公开整个模块和文件夹包的代码,所以我在上面的评论中添加了指向另一个 github 存储库的链接。
  • 哇。谢谢,@ErickLangfordXenes。不幸的是,它没有立即建立。可能是因为我们部署了不同版本的 DNN 网站和不同的设置。无论如何,我刚刚检查了文件 .csproj、packages.config 和 BuildScripts 文件夹中的文件之间的差异,在当前项目 FormAndList 和我创建的更新的工作模块中。根据较新的项目编辑了差异并且它有效。你帮我想出了这个主意。谢谢。 )
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-07
  • 1970-01-01
  • 2014-10-07
  • 1970-01-01
  • 2020-05-09
  • 1970-01-01
相关资源
最近更新 更多