【问题标题】:VSIX Custom Checkin Policy not loadingVSIX 自定义签入策略未加载
【发布时间】:2013-11-07 09:35:02
【问题描述】:

我正在尝试修改自定义签入策略以适用于 Visual Studio 2013。

起初,我试图在 2013 年的清单中添加一个新部分:

<VisualStudio Version="12.0">
    <Edition>Ultimate</Edition>
    <Edition>Premium</Edition>
    <Edition>Pro</Edition>
</VisualStudio>

虽然这允许它安装,但它不允许策略运行(如果我转到 TFS 的策略>>添加部分,它不存在,并且策略抛出异常,说明策略未注册)。

经过大量搜索,我认为 Policies.pkgdef 可能存在问题 - VS2013 中的扩展管理器将其显示为已安装,但在 Pending Changes 中未显示为已安装。但是我也看不出有任何问题:

[$RootKey$\TeamFoundation\SourceControl\Checkin Policies]
"VersionOneTFSPolicy"="$PackageFolder$\VersionOneTFSPolicy.dll"

我在 2013 年打开并编译了它,并修复了所有参考问题,以便它能够正确编译,但它似乎仍然不喜欢使用它。

VS2013 管理自定义签入策略是否与 2010/2012 不同?据我所知,它应该只适用于清单更改和重新编译。

编辑

所以我设法通过将Microsoft.TeamFoundation.VersionControl.Client 的引用从 11 升级到 12 并将项目升级到 .Net 4.5 来让自定义策略在 VS2013 上运行。但是,这现在会使自定义策略在 VS2012 上无法使用(我也会假设 2010 年,但我还没有测试过)。有没有办法让这个在 2010 年到 2013 年从单个 VSIX 运行?

【问题讨论】:

    标签: tfs visual-studio-2013 checkin vsix checkin-policy


    【解决方案1】:

    在没有任何其他解决方案的情况下,我恢复了经过尝试和测试的方法来更新扩展并将其构建为新包。因此,只需拥有一个 2012 版本和一个完全独立的 2013 版本。

    【讨论】:

      【解决方案2】:

      我也在尝试解决这个问题,从我发现的所有内容来看,获得针对所有版本的扩展的唯一方法是实际创建 3 个单独的(2010、2012 和 2013)扩展,并使用 InstallShield 安装它们每个包都作为子功能按顺序安装。

      然后在 VSIX 实际进行安装时单独对每一个进行升级。

      可能对您有所帮助的链接包括:

      Single extension targeting VS 2012 and VS 2013

      How to target an extension in both VS2012 and VS2010

      【讨论】:

        猜你喜欢
        • 2023-03-26
        • 2020-01-20
        • 1970-01-01
        • 2011-10-04
        • 2011-09-02
        • 1970-01-01
        • 2013-02-05
        • 2013-01-12
        • 2013-10-27
        相关资源
        最近更新 更多