2010-08-12 87 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