我编写了一个使用第三方程序集的MSBuild任务。
当我在项目中使用任务时,MSBuild抱怨它无法加载第三方程序集(不出意料)。
我应该在哪里放置第三方程序集,以便MSBuild可以使用它们。我尝试将项目引用添加到它们但没有成功。
答案 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标记它们。