请轻松,我是新的msbuild和msbuildtasks!
如何设置表示要导入的目标文件的相对文件路径的属性?我需要相关的参考资料,这样它就能在所有的开发机器上工作。但是导入的目标是试图在内部使用相对文件路径,这将不能工作,因为它是相对于导入的目标重新评估的!
实际上,我试图围绕导入项目的记录在案的行为进行工作:
导入项目中的所有相对路径都会相对于导入项目的目录进行解释。因此,如果将一个项目文件导入到不同位置的多个项目文件中,则导入的项目文件中的相对路径将对每个导入的项目进行不同的解释。
发布于 2010-01-22 15:44:22
没有安装就可以使用MSBuild扩展包吗?也有类似的问题。这个问题是如何对MSBuild扩展包做同样的事情,两者在这方面是相似的。对于扩展包,必须声明属性ExtensionTasksPath,,对于社区任务,必须声明名为MSBuildCommunityTasksLib.的类似属性所以在你的例子中,应该是这样的:
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<MSBuildCommunityTasksLib Condition="'$(MSBuildCommunityTasksLib)' == ''">E:\Data\Development\My Code\Community\MSBuild\CommunityTasks\</MSBuildCommunityTasksLib>
</PropertyGroup>
<Import Project="$(MSBuildCommunityTasksLib)MSBuild.Community.Tasks.Targets"/>
<Target Name="Demo">
<!-- Use the tasks here -->
</Target>
</Project>发布于 2011-10-11 14:12:36
@Sayed Ibrahim Hashimi
谈到MSBuild4,仅仅声明MSBuildCommunityTasksLib是不够的,因为如果您检查MSBuild.Community.Tasks.Targets文件,则属性声明如下
<PropertyGroup>
<MSBuildCommunityTasksPath Condition="'$(MSBuildCommunityTasksPath)' == ''">$(MSBuildExtensionsPath)\MSBuildCommunityTasks</MSBuildCommunityTasksPath>
<MSBuildCommunityTasksLib>$(MSBuildCommunityTasksPath)\MSBuild.Community.Tasks.dll</MSBuildCommunityTasksLib>
</PropertyGroup>因此,如果您只遍历MSBuildCommunityTasksLib,它将再次在MSBuild.Community.Tasks.Targets文件中被重写,因为它没有条件,所以您还必须重写MSBuildCommunityTasksPath,这样它的提前性不是从MSBuildExtensionsPath设置的,而是从您的自定义路径设置的。如果我错了,请告诉我
发布于 2010-01-22 17:00:08
这似乎是一个答案:
http://social.msdn.microsoft.com/forums/en-US/msbuild/thread/feb782e3-72ae-4476-9011-617796f217b6
但这(如果我正确理解的话)似乎是一个荒谬的解决方案。要获得工作路径,我需要更改导入的项目引用?如果我想在另一个文件夹中引用从第三个项目导入的项目,会发生什么?!?
https://stackoverflow.com/questions/2118102
复制相似问题