代码之家  ›  专栏  ›  技术社区  ›  Alex Duggleby

VSIP开发版中Visual Studio包的Plk验证疑难解答

  •  0
  • Alex Duggleby  · 技术社区  · 15 年前

    我有一个自定义的特定于域的语言项目,它是在一个正常的visualstudio配置单元内的同一台计算机上部署和运行的,没有任何问题。

    服务器已重新安装,我正在尝试再次设置环境,以便普通配置单元(它是一个VisualStudioVSIP版本SP1,带有VisualStudio2008SDK)可以使用DSL。

    但是没有加载VSPackage。包加载分析器给我一个“Plk验证”错误。“未能读取包{guid}的以下值之一-公司名称、包guid、产品名称、产品版本、最低版本。“

    现在我明白了,如果我要部署到非VSIP版本(或使用/noVSIP运行devenv),我将需要从Microsoft获得Plk,但是由于我运行的是开发DSL的同一台开发机器,所以应该有一个开发Plk。Visual Studio一开始还告诉我:

    VSIP: Developer edition, all third-party packages allowed to load.
    

    如果我启动DSL项目并在实验配置单元中调试它,那么一切都会正常工作,加载包并显示所有自定义编辑器。

    有没有进一步解决这个问题的办法?

    问题是否可能是因为DSL项目是在另一个服务器上创建的,即使我在新服务器上重新编译了所有的东西,开发密钥还是与服务器相关,并附加在项目文件的某个地方?如果是的,你知道在哪里吗?

    1 回复  |  直到 15 年前
        1
  •  2
  •   Steve Pudloski    15 年前

    这太令人惊讶了。因为您已经安装了vsipsdk并且没有使用/noVSIP开关,所以我也希望PLK检查机制被禁用(不管配置单元是什么)。然而,包加载分析器指出了一个问题,包加载分析器可能是一个更好的判断VS是否会加载包的工具。

    你试过在你的VSPackage中应用PLK吗?这并不难。看到了吗 here 了解如何获得PLK,然后下一个主题是如何将其应用于代码。在应用PLK之后,您几乎可以根据需要重新构建和更改VSPackage。唯一不能更改的是散列并烘焙到PLK中的四个值。(这些是产品名称、包名称、版本字符串和visual studio所需的最低版本。当您请求一个PLK时,您给出的这四个值必须与您的VSPackage中注册的值相匹配。)如果您以后决定更改其中一个值,您可以只获得另一个PLK。

    推荐文章