5
我有一個項目,需要兩個組件 - 一個MEF組件和一個VSPackage。不過,我沒有太多的運氣說服Visual Studio從我的VSIX加載VSPackage。下面是我使用的.vsixmanifest:在同一個項目中部署MEF組件和VS包
<?xml version="1.0" encoding="utf-8"?>
<Vsix Version="1.0.0" xmlns="http://schemas.microsoft.com/developer/vsx-schema/2010">
<Identifier Id="VisualWide.Microsoft.03ab796d-a0e5-440d-87f9-9461dec10f23">
<Name>Visual Wide</Name>
<Author>Fuckin' Magnets</Author>
<Version>1.0</Version>
<Description>Provides Wide support for Visual Studio</Description>
<Locale>1033</Locale>
<SupportedProducts>
<VisualStudio Version="11.0">
<Edition>VST_All</Edition>
<Edition>Pro</Edition>
</VisualStudio>
</SupportedProducts>
<SupportedFrameworkRuntimeEdition MinVersion="4.5" MaxVersion="4.5" />
</Identifier>
<Content>
<MefComponent>|VisualWide|</MefComponent>
<VsPackage>VSPackage/VSPackage1.pkgdef</VsPackage>
</Content>
</Vsix>
我把大部分來自嚮導生成的VSPackage的項目的.pkgdef。
[$RootKey$\InstalledProducts\VSPackage1Package]
@="#110"
"Package"="{27d97bf0-ec8c-466d-b1a0-df926943c05e}"
"PID"="1.0"
"ProductDetails"="#112"
"LogoID"="#400"
[$RootKey$\Packages\{27d97bf0-ec8c-466d-b1a0-df926943c05e}]
@="VSPackage1Package"
"InprocServer32"="$WinDir$\SYSTEM32\MSCOREE.DLL"
"Class"="Microsoft.VSPackage1.VSPackage1Package"
"CodeBase"="$PackageFolder$\VisualWide.dll"
我改變了CodeBase元素來引用我的項目生成的DLL。
我使用了/ log開關,並檢查了ActivityLog,並且發現並加載了我的pkgdef。
但是,沒有證據表明我的VSPackage正在運行。本教程中的默認VSPackage在構造函數和初始化程序中有一個log命令,它應該轉到調試輸出,但不會出現日誌消息。 Visual Studio關於頁面沒有列出它。我在構造函數和initialize()中放置了斷點,並且它們沒有被擊中。
如何打包我的VSPackage以使其加載我的MEF組件?
這裏的答案不夠嗎? http://social.msdn.microsoft.com/Forums/en-US/499368ea-8d5f-4efe-85a6-3e66a9a84e30/how-can-i-deploy-a-mef-component-and-a-vs-package-在最同VSIX?論壇= VSX –