具有依赖项的自定义MSBuild任务

时间:2009-10-28 10:53:51

标签: msbuild

我编写了一个使用第三方程序集的MSBuild任务。

当我在项目中使用任务时,MSBuild抱怨它无法加载第三方程序集(不出意料)。

我应该在哪里放置第三方程序集,以便MSBuild可以使用它们。我尝试将项目引用添加到它们但没有成功。

2 个答案:

答案 0 :(得分:9)

我不确定我是否表达了我的问题,但现在我找到了解决方案。

在我的.proj文件中,我使用以下语法引用我的自定义任务...

<UsingTask AssemblyFile="..\lib\MyCompany.MSBuild\MyCompany.MSBuild.dll" TaskName="CreateDatabase" />

我的CreateDatabase任务依赖于各种第三方程序集。但是,其中一些仅通过反射引用,因此默认情况下不包含在文件夹“.. \ lib \ MyCompany.MSBuild”中。

我一直试图通过将所需的程序集放在与调用任务的.proj文件相同的目录中来完成任务。

但是,我应该做的是将程序集放在引用的任务目录“.. \ lib \ MyCompany.MSBuild \”中。

简单!

答案 1 :(得分:1)

您可以将它们添加到GAC(全局装配缓存)。这仅在强名称时才有效。

在项目中添加引用时,您还可以确保使用copy local = true标记它们。