【发布时间】:2009-10-29 17:37:12
【问题描述】:
我编写了一个使用第三方程序集的 MSBuild 任务。
当我在项目中使用该任务时,MSBuild 抱怨它无法加载第三方程序集(不足为奇)。
我应该将第三方程序集放在哪里,以便 MSBuild 可以使用它们。我尝试向它们添加项目引用但没有成功。
【问题讨论】:
标签: msbuild
我编写了一个使用第三方程序集的 MSBuild 任务。
当我在项目中使用该任务时,MSBuild 抱怨它无法加载第三方程序集(不足为奇)。
我应该将第三方程序集放在哪里,以便 MSBuild 可以使用它们。我尝试向它们添加项目引用但没有成功。
【问题讨论】:
标签: msbuild
我不确定我是否很好地表达了我的问题,但现在我找到了解决方案。
在我的 .proj 文件中,我使用以下语法引用我的自定义任务...
<UsingTask AssemblyFile="..\lib\MyCompany.MSBuild\MyCompany.MSBuild.dll" TaskName="CreateDatabase" />
我的 CreateDatabase 任务依赖于各种第 3 方程序集。但是,其中一些仅通过反射引用,因此默认情况下不包含在文件夹“..\lib\MyCompany.MSBuild”中。
我一直试图通过将所需的程序集放在与调用任务的 .proj 文件相同的目录中来使任务工作。
但是,我应该做的是将程序集放在引用的任务目录“..\lib\MyCompany.MSBuild\”中。
简单!
【讨论】:
您可以将它们添加到 GAC(全局程序集缓存)。这仅适用于强命名。
您还可以确保在项目中添加引用时已将它们标记为 copy local = true。
【讨论】: