Недавно я разработал собственную политику проверки TFS, которая была отлично работает с Visual Studio 2015. Теперь я установил Visual Studio 2017 и хотел зарегистрировать сборку политики проверки так же, как и с VS2015 раньше. Но это не работает. Как я могу зарегистрировать собственные сборки политики проверки с помощью VS2017?
Для VS2015 у меня были следующие ключи реестра:
[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\VisualStudio\14.0\TeamFoundation\SourceControl\Checkin Policies]
"MyCheckInPolicy"="C:\\Program Files\\My\\MyCheckInPolicy.dll"
и
[HKEY_CURRENT_USER\SOFTWARE\Microsoft\VisualStudio\14.0_Config\TeamFoundation\SourceControl\Checkin Policies]
"MyCheckInPolicy"="C:\\Program Files\\My\\MyCheckInPolicy.dll"
и соответственно я добавил эти ключи для VS2017 (15.0
):
[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\VisualStudio\15.0\TeamFoundation\SourceControl\Checkin Policies]
"MyCheckInPolicy"="C:\\Program Files\\My\\MyCheckInPolicy.dll"
[HKEY_CURRENT_USER\SOFTWARE\Microsoft\VisualStudio\15.0_Config\TeamFoundation\SourceControl\Checkin Policies]
"MyCheckInPolicy"="C:\\Program Files\\My\\MyCheckInPolicy.dll"
Но, к сожалению, это не работает:
- Если я открою настройки Team Project SourceControl, перейдите на вкладку "Политика регистрации" и попробуйте Add... политику,
MyCheckInPolicy
не появится 1 - Если я открою командный проект, который уже использует эту политику регистрации, и я сделал сообщение об ошибке, сообщающее мне, что сборка (
MyCheckInPolicy
) "не была зарегистрирована".
Конечно, я перезапустил IDE после изменения реестра, но даже перезагрузка моя машина не помогла.
информация Я обнаружил, что до сих пор кажется, что политики проверки теперь должны быть частью расширения (vsix), которое я не хочу верить.
Я предполагаю, что проблема связана с некоторыми ссылками, которые невозможно решить, когда сборка загружена в среду IDE.
Проект MyCheckInPolicy
ссылается на Microsoft.TeamFoundation.VersionControl.Client.dll
v14.0 из папки VS2015 C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer
.
Я попытался ссылаться на соответствующую dll из папок VS2017, но тогда сборка не работает в обеих IDE.
Я также попытался использовать пакет Nuget "Microsoft.TeamFoundation.VersionControl.All" v12.0.30723.2 вместо этого и развернул все файлы из выходного каталога (который, кажется, содержит все сборки пакета), в указанное в ключи реестра. Это имело такой же результат: политика не может быть загружена ни в VS2015, ни в VS2017.
Мы используем TFS 12.0.30723.0.
1 Итак, похоже, VS2017 даже не пытается загрузить сборку и не заботится о ключах реестра?