0

我有一个自定义域特定语言项目,该项目是不久前开发的,已部署并在普通 Visual Studio 配置单元内的同一台机器上运行,没有任何问题。

服务器已重新安装,我正在尝试再次设置环境,以便普通配置单元(它是 Visual Studio VSIP Edition SP1,带有 Visual Studio 2008 SDK)可以使用 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 项目是在不同的服务器上创建的,即使我已经在新服务器上重新编译了所有内容,但开发密钥在某种程度上与服务器相关并且附加在项目文件中的某处?如果是这样,知道在哪里吗?

4

1 回答 1

2

这是令人惊讶的。由于您已安装 VSIP SDK 并且未使用 /noVSIP 开关,因此我也希望禁用 PLK 检查机制(无论配置单元如何)。然而,包负载分析器表明存在问题,包负载分析器可能比我们更好地判断 VS 是否会加载包。

您是否尝试过将 PLK 实际应用到您的 VSPackage?这并不难做到。请参阅此处了解如何获取 PLK,然后参阅下一个主题了解如何将其应用于您的代码。应用 PLK 后,您几乎可以根据需要重建和更改 VSPackage。唯一不能更改的是散列并烘焙到 PLK 中的四个值。(这些是产品名称、包名称、版本字符串和最低要求的 Visual Studio 版本。您在请求 PLK 时提供的这四个值必须与在 VSPackage 中注册的值匹配。)如果您以后决定更改其中之一值,你可以得到另一个 PLK。

于 2009-10-15T04:36:47.567 回答