Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何更改模块FormAndList(又名UserDefinedTable)中MsBuildTasks的packages文件夹的路径?_C#_Msbuild_Dotnetnuke_Dnn Module - Fatal编程技术网

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

C# 如何更改模块FormAndList(又名UserDefinedTable)中MsBuildTasks的packages文件夹的路径?,c#,msbuild,dotnetnuke,dnn-module,C#,Msbuild,Dotnetnuke,Dnn Module,我试图使DNN模块FormAndList(又名UserDefinedTable)在我将其项目包含到解决方案中时进行编译,该解决方案位于不同的目录中(最多3个文件夹)。我编辑了MSBuild.Community.Tasks.Targets文件,以便它能够找到库MSBuild.Community.Tasks.dll的正确路径。它适用于调试模式,但当我在发布模式下编译它时,会出现以下错误: 无法从程序集D:\Projects\SolutionFolder\Host\DesktopModules\Use

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

无法从程序集D:\Projects\SolutionFolder\Host\DesktopModules\UserDefinedTable\BuildScripts\MSBuild.Community.Tasks.dll加载“MSBuild.Community.XmlRead”任务。无法加载文件或程序集的file:///D:\Projects\SolutionFolder\Host\DesktopModules\UserDefinedTable\BuildScripts\MSBuild.Community.Tasks.dll'或其依赖项之一。系统找不到指定的文件。确认声明正确,程序集及其所有依赖项可用,并且任务包含实现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')" />


我认为你不需要那些台词

也可以尝试使用:

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

您可以发布您的csproj文件吗?还包括packages.configUpdate。下面是指向github的链接,带有代码。在尝试使模块从sln目录获取包时,我修改了.csproj、MSBuild.Community.Tasks.Targets和packages.config。我已经尝试使用
$(SolutionDir)
而不是
。\..\\
,但没有帮助。它只是以同样的方式工作,但没有帮助。我在.csproj和MsBuildTasks的构建脚本中编辑了这些路径。起初我遇到了一个问题,即在构建时,此项目无法找到包
MSBuildTasks.1.5.0.235
。通过路径中的
$(SolutionDir)
。\..\..\
它找到了它,但随后在上面的
MSBuild.Community.Tasks.XmlRead任务中出现了错误。我刚收到公司的权限,可以为整个模块和文件夹包公开代码,所以我在上面的评论中添加了另一个github repo的链接。@ConstantineKetskalo check-Wow。谢谢,@ErickLangfordXenes。不幸的是,它没有立即建造。可能是因为我们部署了不同版本的DNN网站和不同的设置。无论如何,我只是检查了文件.csproj、packages.config和文件夹BuildScripts中的文件之间的差异,这两个文件位于当前项目FormAndList和由我创建的较新工作模块中。根据较新的项目编辑差异,结果成功。你帮我想出了这个主意。谢谢。)
<MSBuildCommunityTasksPath>$(SolutionDir)\packages\MSBuildTasks.1.5.0.235\tools</MSBuildCommunityTasksPath>