2

我正在尝试修改自定义签入策略以适用于 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 运行?

4

2 回答 2

1

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

于 2013-11-19T18:37:47.173 回答
0

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

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

可以帮助您解决此问题的链接包括:

针对 VS 2012 和 VS 2013 的单个扩展

如何在 VS2012 和 VS2010 中定位扩展

于 2013-11-24T17:38:42.603 回答