2010-08-12 84 views
4

我有许多Visual Studio 2010的自定义项目和项目模板。 我已经构建了一个VSIX包,可用于将这些扩展部署到多个开发人员的机器。如何使用MEF部署MSBuild自定义任务?

我现在正在创建新的项目模板所需的自定义MSBuild任务。

在我的本地项目,我能得到这个通过投入硬编码路径在项目文件的工作:

但这并不时VSIX包部署工作的“开发”视觉Studio实例。 Visual Studio报告说找不到CustomBuildTask.dll。

VSIX在哪里部署DLL? 是否有一个MSBuild%(路径)变量我可以用来找到其他机器上的DLL, 或每个用户都必须手动复制DLL和/或将全局“.tasks”文件放入他们的Visual Studio安装?

注意:没有用于项目和项目模板的MSBuild任务的VSIX内容类型。我尝试过“VS包”,“MEF组件”和“自定义扩展类型” - 并没有任何工作。

+0

全驱动搜索之后,我发现我的DLL在: C:\ Documents和Settings \ \本地设置\应用数据\微软\的Visual Studio \ 10.0Exp \扩展\ \ \ \ MyCustomTask.dll 这似乎是VSIX部署DLL的位置,但我找不到要在UsingTask AssemblyFile属性中使用的MSBuild变量。 – 2010-08-12 19:13:49

回答

1

我不相信你可以做到这一点,因为VSIX包不能在任意位置安装文件,并且msbuild任务需要进入msbuild文件夹。

+0

我找到了其他信息。你是对的。只是平坦的VSIX不支持这一点,文档说,使用常规的MSI安装包代替。 请参阅:http://blogs.msdn.com/b/visualstudio/archive/2010/06/09/vsix-best-practices.aspx 在“通过MSI安装”一节中,它指出MSBuild组件“必须在特定的,知名的位置“,VSIX不支持。 – 2010-08-12 22:04:21