在Visual Studio 2010中避免MSBuild社区任务的本地依赖性

时间:2011-04-10 20:31:35

标签: visual-studio-2010 msbuild msbuildcommunitytasks

我正在尝试开始利用MSBuild Community Tasks,因此我在.msi元素中导入了MSBuild.Community.targets这个方法之后就这样了:< / p>

<Project>

有趣的是,我注意到这样的文件引用了<Import Project="lib\MSBuild.Community.Tasks.targets" /> 中的本地安装路径,并且考虑到代替保持代码依赖性尽可能干净,我愿意支付分发/版本化它们的开销。对于每个项目,我都想知道是否可以使用MSBuildExtensionsPath文件中与项目相关的位置覆盖默认/安装位置?

实际布局如下:

.cproj

任何指导都将得到真诚的感谢。非常感谢你提出任何你想要分享的建议。

1 个答案:

答案 0 :(得分:7)

MSBuild.Community.Tasks.targets 中指定了dll的路径。

<PropertyGroup>
  <MSBuildCommunityTasksPath Condition="'$(MSBuildCommunityTasksPath)' == ''">$(MSBuildExtensionsPath)\MSBuildCommunityTasks</MSBuildCommunityTasksPath>
  <MSBuildCommunityTasksLib>$(MSBuildCommunityTasksPath)\MSBuild.Community.Tasks.dll</MSBuildCommunityTasksLib>
</PropertyGroup>

您可以覆盖项目中的路径。

<PropertyGroup>
   <MSBuildCommunityTasksPath>lib</MSBuildCommunityTasksPath>      
</PropertyGroup>

并保持导入相同:

<Import Project="lib\MSBuild.Community.Tasks.targets" />