扩展Installshield ISPROJ项目类型

时间:2017-08-25 17:22:11

标签: installshield visual-studio-extensions vs-extensibility extensibility mpf

InstallShield必须是现存最疯狂的“行业标准”应用程序,原因太多,无法在此枚举。然而,其中一个缺点是我希望能够修复,并且我第一次尝试编写Visual Studio的扩展(目前使用的是2015版本)。

InstallShield创建了一个.isproj类型,以允许与Visual Studio集成。这允许开发人员创建一个引用项目输出的安装程序作为要包含在安装程序中的文件(而不是必须手动选择要包含的单个文件)。只要在Visual Studio中构建.isproj,并且在引用需要输出的项目的解决方案中,这就足够了。

但是,我还有一个自动构建我的安装程序项目,我们使用MSBuild在构建服务器上运行。尝试以这种方式构建时,我们得到完全不透明的错误消息,表明上面的项目输出引用无法解析。

与所有InstallShield错误一样,除了大量其他具有相同问题的人之外,谷歌搜索的答案几乎没有发现。所以我决定深入研究.isproj的纯文本,看看我能找到什么。

事实证明,.isproj类型只是一个常规的MSBuild脚本,甚至还有注释掉的行解释了可以添加到项目中的选项;其中一个可以添加的东西是包含ProjectReference节点的ItemGroup。手动添加节点有助于解决问题。命令行构建现在可以工作。

但是,我不满意a)必须手动输入这些内容,b)没有可视化表示正在引用的项目,以及c)在构建失败之前没有发现问题。所以,我希望能够扩展Visual Studio来帮助我。这就是我想做的事情:

1)在“解决方案资源管理器”中向项目添加“引用”节点,该节点的作用类似于任何普通.csproj的“引用”节点。

2)在当前解决方案中限制对其他项目的可用引用。

3)直观地表示缺少引用的项目(例如,通过使用彩色波浪线标记项目名称,与错误/警告一样),如果丢失则可能使构建失败(取决于我是否要将其视为错误)或警告;待定)。

为此,我已经下载了MPF for Projects - Visual Studio 2013,它提供了用于创建新项目类型的SDK。

但是,在深入挖掘之前,我需要知道是否可以扩展现有的项目类型,如上所述,因为我显然没有InstallShield源代码。此外,非常感谢任何关于这样做的起点的链接或指导。

This is what an .isproj project looks like in Solution Explorer

0 个答案:

没有答案