add ProxyJump function
This commit is contained in:
1 parent
56e20e5464
commit
7f0e0fdb23
48 files changed
+3875
-44
No files matched your search
@@ -0,0 +1,121 @@
|
||||
# Сборка и подключение BulkArchiveMailer
|
||||
|
||||
Это решение написано и ни разу не собрано в среде без Windows/Visual
|
||||
Studio/.NET SDK — весь код написан вручную по памяти о реальных
|
||||
VSTO/Outlook Interop API, но **первая сборка обязательно должна пройти на
|
||||
вашей машине**, прежде чем этому плагину можно будет доверять. Ниже —
|
||||
пошаговая инструкция и список мест, где по опыту чаще всего что-то не
|
||||
сходится при первом открытии вручную написанного `.csproj`.
|
||||
|
||||
## Требования
|
||||
|
||||
- Windows 10/11.
|
||||
- Классический Outlook (Win32 или Microsoft 365 C2R) — **не** "новый
|
||||
Outlook" (он не поддерживает VSTO).
|
||||
- Visual Studio 2022 (Community — бесплатная) с установленным workload'ом
|
||||
**".NET desktop development"** И **"Office/SharePoint development"**
|
||||
(последний ставит шаблоны VSTO, VSTO Runtime и Office Developer Tools —
|
||||
без него сборка `BulkArchiveMailer.AddIn` не найдёт
|
||||
`Microsoft.Office.Tools.*` сборки).
|
||||
- Установленный **VSTO Runtime** (обычно ставится вместе с
|
||||
Office/SharePoint workload'ом; если Outlook жалуется на "not a valid
|
||||
Office Add-in" при загрузке — скорее всего он не установлен отдельно,
|
||||
доустановите "Microsoft Visual Studio 2010 Tools for Office Runtime" /
|
||||
актуальную версию VSTO Runtime).
|
||||
|
||||
## Открытие и сборка
|
||||
|
||||
1. Откройте `BulkArchiveMailer.sln` в Visual Studio.
|
||||
2. Дайте NuGet восстановить пакеты (`BulkArchiveMailer.Core.Tests` тянет
|
||||
xUnit + `Microsoft.NET.Test.Sdk`; `BulkArchiveMailer.Core` и
|
||||
`BulkArchiveMailer.AddIn` NuGet-пакетов не используют вовсе — это
|
||||
осознанное решение, см. `AppSettings.cs`, чтобы не зависеть от
|
||||
восстановления пакетов в непроверенной среде).
|
||||
3. Соберите решение (Build → Build Solution). Скорее всего первая сборка
|
||||
пройдёт чисто, но если нет — см. раздел "Типичные проблемы" ниже.
|
||||
4. `BulkArchiveMailer.Core.Tests` можно запустить через Test Explorer —
|
||||
там сейчас один smoke-тест (`FilenameParserTests`), подтверждающий, что
|
||||
тестовый проект в принципе собирается и видит `Core`. Полное покрытие
|
||||
тестами — отдельная задача (dotnet-tester), не часть этой сборки.
|
||||
|
||||
## Отладка (F5)
|
||||
|
||||
Проект `BulkArchiveMailer.AddIn` настроен как VSTO Outlook Add-in — при
|
||||
нажатии F5 (с ним как стартовым проектом) Visual Studio должна сама
|
||||
зарегистрировать временную запись в реестре и запустить Outlook с уже
|
||||
загруженным плагином. Если Outlook уже был открыт — закройте его перед F5.
|
||||
|
||||
Кнопка ленты **"Массовая рассылка"** появляется на вкладке "Главная"
|
||||
основного окна Outlook (список писем), в группе "ssh-access-tui".
|
||||
|
||||
## Установка вне Visual Studio (ручной sideload)
|
||||
|
||||
Это внутренний инструмент, поэтому здесь используется **sideload через
|
||||
реестр**, а не полноценная публикация ClickOnce с веб-сервером или
|
||||
раскатка через GPO (это отдельная задача на будущее, если понадобится
|
||||
массово ставить плагин большому числу операторов).
|
||||
|
||||
1. Соберите решение в конфигурации Release (Build → Configuration Manager
|
||||
→ Release, затем Build Solution).
|
||||
2. В `BulkArchiveMailer.AddIn\bin\Release\` после сборки появятся, среди
|
||||
прочего, `BulkArchiveMailer.AddIn.dll` и
|
||||
`BulkArchiveMailer.AddIn.vsto` (манифест генерируется автоматически
|
||||
MSBuild-таргетами VSTO — в исходниках его нет и не должно быть,
|
||||
`.gitignore` его игнорирует).
|
||||
3. Скопируйте всю папку `bin\Release\` в постоянное место на диске
|
||||
оператора (например, `C:\Tools\BulkArchiveMailer\`) — VSTO plug-in
|
||||
должен запускаться из стабильного пути, а не из папки сборки, которая
|
||||
может быть пересобрана/удалена.
|
||||
4. Добавьте ключ реестра, которым Outlook находит плагин:
|
||||
|
||||
```
|
||||
[HKEY_CURRENT_USER\Software\Microsoft\Office\Outlook\Addins\BulkArchiveMailer.AddIn]
|
||||
"Description"="Массовая рассылка архивов ssh-access-tui"
|
||||
"FriendlyName"="BulkArchiveMailer"
|
||||
"Manifest"="file:///C:\\Tools\\BulkArchiveMailer\\BulkArchiveMailer.AddIn.vsto|vstolocal"
|
||||
"LoadBehavior"=dword:00000003
|
||||
```
|
||||
|
||||
(можно сохранить как `.reg`-файл и применить двойным щелчком).
|
||||
5. Запустите Outlook. Поскольку манифест не подписан сертификатом
|
||||
(`SignManifests=false` в `.csproj` — см. комментарий там же о причине),
|
||||
при первой загрузке Outlook, скорее всего, покажет предупреждение
|
||||
"не удалось проверить издателя" или подобное. Варианты:
|
||||
- принять предупреждение вручную (для одного оператора это разумно);
|
||||
- добавить папку с плагином в доверенные расположения для VSTO:
|
||||
`HKEY_CURRENT_USER\Software\Microsoft\VSTO\Security\Trust Manager\TrustedFolders\<любой уникальный ключ>` = путь к папке с `.vsto`, `String` REG_SZ.
|
||||
- для более широкой раскатки — подписать манифест сертификатом
|
||||
(Project Properties → Signing в Visual Studio) и настроить
|
||||
доверие централизованно (GPO/сертификат в доверенных издателях) —
|
||||
это уже упомянутое будущее развитие, не сделано в этой версии.
|
||||
|
||||
## Типичные проблемы при первом открытии
|
||||
|
||||
Поскольку `.csproj`/`.sln` в этом решении написаны вручную (без мастера
|
||||
Visual Studio, из-за отсутствия здесь Windows/VS/.NET SDK для
|
||||
генерации), возможны мелкие расхождения с тем, что сгенерировал бы
|
||||
реальный мастер "Outlook VSTO Add-in". Если сборка `BulkArchiveMailer.AddIn`
|
||||
падает на ссылках `Microsoft.Office.*`/`Microsoft.VisualStudio.Tools.*`:
|
||||
|
||||
1. Проверьте, что workload "Office/SharePoint development" точно
|
||||
установлен (Visual Studio Installer → Modify).
|
||||
2. Если конкретная ссылка подсвечена жёлтым в Solution Explorer — правой
|
||||
кнопкой на неё → Properties → сверьте путь; как правило, достаточно
|
||||
удалить и заново добавить через Add Reference → Assemblies →
|
||||
Extensions, найдя те же имена (`Microsoft.Office.Tools.Outlook` и
|
||||
т.д.) — они должны там появиться, если workload установлен.
|
||||
3. Если `Microsoft.Office.Interop.Outlook`/`office` не резолвятся с
|
||||
версией `15.0.0.0` — это нормально расходится в зависимости от того,
|
||||
какая версия Office PIA установлена; смените `Version=` в ссылке (в
|
||||
`.csproj`, ищите `Microsoft.Office.Interop.Outlook`/`office`) на
|
||||
установленную (`14.0.0.0` для Office 2010 PIA и т.п.) либо просто
|
||||
удалите атрибут версии в Solution Explorer и добавьте заново через
|
||||
Add Reference — Visual Studio подставит то, что реально стоит на
|
||||
машине.
|
||||
4. TargetFrameworkVersion `v4.8` требует установленного .NET Framework 4.8
|
||||
Developer Pack — Visual Studio предложит установить его сама при
|
||||
открытии, если его нет.
|
||||
|
||||
Ничего из перечисленного не проверялось вживую — список составлен по
|
||||
опыту работы с VSTO-проектами в целом, а не по факту увиденной ошибки в
|
||||
этом конкретном решении.
|
||||
Reference in new issue
Block a user