我正在尝试创建一个在 Visual Studio 2017 中使用的 TFS checkin 策略扩展。该扩展本身已经适用于 VS2015 以下版本(我正在尝试更新 Spartez 扩展,作为 PR 的前奏)
出于某种原因,每当我尝试在实验实例中运行它时,它似乎永远不会加载该策略。
PkgDef 内容为:
[$RootKey$\TeamFoundation\SourceControl\Checkin Policies]
"Spartez.TFS4JIRA.CheckInPolicy"="$PackageFolder$\Spartez.TFS4JIRA.CheckInPolicy.dll"
list 如下:
<PackageManifest Version="2.0.0"
xmlns="http://schemas.microsoft.com/developer/vsx-schema/2011"
xmlns:d="http://schemas.microsoft.com/developer/vsx-schema-design/2011">
<Metadata>
<Identity Id="e27e3a03-d421-4908-8c6c-bc68a9981069" Version="1.1.4" Language="en-US" Publisher="Spartez" />
<DisplayName>Spartez Issue Key Checkins Policy</DisplayName>
<Description xml:space="preserve">Issue Key Checkins Policy by Spartez.</Description>
<License>License.txt</License>
</Metadata>
<Installation>
<InstallationTarget Id="Microsoft.VisualStudio.Community" Version="[15.0]" />
</Installation>
<Dependencies>
<Dependency Id="Microsoft.Framework.NDP" DisplayName="Microsoft .NET Framework" d:Source="Manual" Version="[4.5,)" />
</Dependencies>
<Assets>
<Asset Type="Microsoft.VisualStudio.VsPackage" d:Source="File" Path="policies.pkgdef" />
</Assets>
<Prerequisites>
<Prerequisite Id="Microsoft.VisualStudio.Component.CoreEditor" Version="[15.0,16.0)" DisplayName="Visual Studio core editor" />
</Prerequisites>
</PackageManifest>
VS 2017 在注册表设置方面发生了相当大的变化。 tfs 扩展的注册表位置是否已更改?
最佳答案
我为此苦苦挣扎了几个小时。我通过将自定义策略项目引用的所有 TFS 和 Visual Studio Nuget 包升级到最新预览版(v15.113.0-preview)来修复此问题:
- Microsoft.TeamFoundationServer.ExtendedClient
- Microsoft.TeamFoundationServer.Client
- Microsoft.VisualStudio.Services.Client
- Microsoft.VisualStudio.Services.InteractiveClient
一些注意事项:
- 我的扩展在 VS2015 中更新后损坏了。 Nuget 包似乎不向后兼容。
- 您可以在 VS2015 中安装旧版本,同时在 VS2017 中安装新版本。这就是我计划在我的团队完全转变为 2017 年之前所做的事情。
关于tfs - 注册 2017 年签到政策,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42651528/