9
|
Noel Kennedy · 技术社区 · 15 年前 |
1
15
有一个相似的问题 Is it possible to use MSBuild Extension Pack without installation? . 问题是如何对 MSBuild Extension Pack 两者在这方面是相似的。对于扩展包,您必须声明该属性 扩展任务库 ,对于社区任务,必须声明一个名为 MSBuildCommunityTasksLib . 因此,在您的案例中,它应该看起来像:
|
2
6
@易卜拉欣·哈希米说 谈论msbuild4 仅仅声明msbuildCommunityTaskslib是不够的,因为如果检查msbuild.community.tasks.targets文件,属性声明如下
因此,如果您只在msbuild.community.tasks.slib之上,它将再次在msbuild.community.tasks.targets文件中被覆盖,因为它不是有条件的 因此,您还必须重写msbuildCommunityTasksPath,以便其属性不是从msbuildExtensionsPath设置的,而是从您的自定义路径设置的。 如果我错了,请告诉我。 |
3
5
好的,我找到答案了。本质上,必须将属性msbuildCommunityTasksPath设置为返回原始包含目录的相对路径。
例如,给定这样的文件夹结构:
Root---project---Build---{My msbuild project} | |-Tools---MSBuildCommunityTasks---{Binaries and Targets}在哪里? 我的msbuild项目位于根\项目\生成中\ msbuildCommunityTasks位于根目录\项目\工具\ msbuildCommunityTasks中 要使目标项目通过属性msbuildCommunityTasksPath引用其二进制文件,它将找到如下任务文件:
然后可以使用另一个相对文件引用导入目标文件:
|
4
0
这似乎是一个答案: http://social.msdn.microsoft.com/forums/en-US/msbuild/thread/feb782e3-72ae-4476-9011-617796f217b6 但这(如果我理解正确的话)似乎是一个荒谬的解决方案。为了获得工作的途径,我需要改变 进口的 项目参考?如果我想引用另一个文件夹中从第三个项目导入的项目,会发生什么?!? |
5
0
如果我很诚实的话,我是一个在msbuild的笨蛋,但是我刚刚解决了我自己的问题。我将其中一个目标转化为自己的项目,但它没有找到msbuild社区路径的路径。如果你看你原来的项目,你可能会发现这样的东西
将此代码复制到新项目中,它应该可以工作。 |
6
0
我只是想补充一点,因为我不能评论(rep),要为您的特定项目做一个路径,您可以在您的属性组上使用$(solutiondir),如下所示: $解决方案目录\我的代码\社区\msbuild \社区任务\ 这样它就不会绑定到特定的驱动器上,并且可以基于项目相对于解决方案目录结构的位置。 同样感谢上面的答案,它帮助我在我的项目中添加了上面的内容。 |