从特定位置使用MSBuildExtensionPack(DLL参考)

时间:2013-05-31 07:40:12

标签: msbuild msbuild-task msbuild-4.0 msbuildextensionpack msbuild-propertygroup

我正在尝试使用MSBuildExtensionPack并读取我必须使用以下内容导入项目:

$(MSBuildProjectDirectory).. \ MSBuild.ExtensionPack.tasks $(MSBuildProjectDirectory).... \ COMMON \ MSBuild.ExtensionPack.tasks

您在使用任务时不必包含上述类型的导入。如果您使用了默认安装路径,只需使用以下导入:

3.5 --- 4.0 ---

我没有在构建服务器上安装扩展包,而是将DLL复制到特定位置并尝试通过以下代码访问它:

使用TeamCity对构建进行分类后,出现以下错误:

错误MSB4019:找不到导入的项目“C:\ Apps \ Teamcity \ buildAgent 1 \ work \ vb82348r312dsd33 \ thirdparty \ tools \ MsBuildExtensions”。确认声明中的路径是否正确,以及该文件是否存在于磁盘上。

如果我查看构建机器,我可以找到该文件夹​​及其中的所有文件。不知道为什么我收到这个错误。

<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"
         ToolsVersion="4.0"
         DefaultTargets="StopIT">

 <Import Project=".\thirdparty\tools\MsBuildExtensions"/>

<Target Name="StopIT">
        <MSBuild.ExtensionPack.Computer.WindowsService TaskAction="Stop" ServiceName="AppServices"  MachineName="MyMachineName"/>
  </Target>
</Project>

请提供您的建议

1 个答案:

答案 0 :(得分:1)

您需要从

更改导入
<Import Project=".\thirdparty\tools\MsBuildExtensions"/>

<Import Project=".\thirdparty\tools\MsBuildExtensions\MSBuild.ExtensionPack.tasks"/>

仅仅命名文件夹是不够的,你必须命名应该导入的每个文件(.proj,.target,.tasks),在你的情况下命名为MSBuild.ExtensionPack.tasks

任务文件包含任务名称和程序集之间的某种映射,以便在其中找到它们。