Commit 39b6dc6
committed
Fix FieldWorks startup crashes and RegFree COM registration
Summary:
Resolved the "Class not registered" (0x80040154) startup crash by correcting the Registration-Free COM configuration and fixing initialization order.
Details:
- Build: Added `<NoWin32Manifest>true` to FieldWorks.csproj. This prevents the .NET SDK from embedding a default manifest in Debug builds, allowing the external `FieldWorks.exe.manifest` (which contains the required COM entries) to be used by the Windows Loader.
- COM: Explicitly registered managed COM assemblies (LexTextDll, xWorks, FwUtils, etc.) in `BuildInclude.targets` so they are included in the generated application manifest.
- COM: Decorated `LexTextApp` with `[ComVisible(true)]` and a stable GUID to ensure it can be instantiated via COM.
- Stability: Moved ICU initialization earlier in the startup sequence (`FieldWorks.cs`) to prevent "ICU not initialized" errors.
- Dev Env: Improved `FwDirectoryFinder` to reliably locate `DistFiles` relative to the executable in developer builds.
- Resources: Restored missing `ErrorReporter.resx` (renamed from ErrorReport.resx) to ensure crash reporting functions correctly.
- Config: Added a default layout for `CmObject` in `Cellar.fwlayout` to prevent UI crashes on unknown object types.
- Deps: Updated `SharpZipLib` and `System.Net.Fix FieldWorks startup crashes and RegFree COM registration
Summary:
Resolved the "Class not registered" (0x80040154) startup crash by correcting the Registration-Free COM configuration and fixing initialization order.
Details:
- Build: Added `<NoWin32Manifest>true` to FieldWorks.csproj. This prevents the .NET SDK from embedding a default manifest in Debug builds, allowing the external `FieldWorks.exe.manifest` (which contains the required COM entries) to be used by the Windows Loader.
- COM: Explicitly registered managed COM assemblies (LexTextDll, xWorks, FwUtils, etc.) in `BuildInclude.targets` so they are included in the generated application manifest.
- COM: Decorated `LexTextApp` with `[ComVisible(true)]` and a stable GUID to ensure it can be instantiated via COM.
- Stability: Moved ICU initialization earlier in the startup sequence (`FieldWorks.cs`) to prevent "ICU not initialized" errors.
- Dev Env: Improved `FwDirectoryFinder` to reliably locate `DistFiles` relative to the executable in developer builds.
- Resources: Restored missing `ErrorReporter.resx` (renamed from ErrorReport.resx) to ensure crash reporting functions correctly.
- Config: Added a default layout for `CmObject` in `Cellar.fwlayout` to prevent UI crashes on unknown object types.
- Deps: Updated `SharpZipLib` and `System.Net.1 parent 30c82d9 commit 39b6dc6
File tree
14 files changed
+111
-50
lines changed- DistFiles/Language Explorer/Configuration/Parts
- Src
- Common
- FieldWorks
- FwUtils
- LexText/LexTextDll
- Utilities/Reporting
- specs
- 003-convergence-regfree-com-coverage
- 007-test-modernization-vstest
14 files changed
+111
-50
lines changedLines changed: 4 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
93 | 93 | | |
94 | 94 | | |
95 | 95 | | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
96 | 100 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
79 | 79 | | |
80 | 80 | | |
81 | 81 | | |
82 | | - | |
| 82 | + | |
83 | 83 | | |
84 | 84 | | |
85 | 85 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
6 | 15 | | |
7 | 16 | | |
8 | 17 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
155 | 155 | | |
156 | 156 | | |
157 | 157 | | |
158 | | - | |
| 158 | + | |
| 159 | + | |
159 | 160 | | |
160 | 161 | | |
161 | 162 | | |
| |||
283 | 284 | | |
284 | 285 | | |
285 | 286 | | |
286 | | - | |
287 | | - | |
288 | 287 | | |
289 | 288 | | |
290 | 289 | | |
| |||
3518 | 3517 | | |
3519 | 3518 | | |
3520 | 3519 | | |
| 3520 | + | |
| 3521 | + | |
3521 | 3522 | | |
3522 | 3523 | | |
3523 | 3524 | | |
3524 | | - | |
3525 | | - | |
3526 | 3525 | | |
3527 | 3526 | | |
3528 | 3527 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
| 11 | + | |
11 | 12 | | |
12 | 13 | | |
13 | 14 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
325 | 325 | | |
326 | 326 | | |
327 | 327 | | |
| 328 | + | |
| 329 | + | |
| 330 | + | |
| 331 | + | |
| 332 | + | |
| 333 | + | |
| 334 | + | |
| 335 | + | |
| 336 | + | |
| 337 | + | |
| 338 | + | |
328 | 339 | | |
329 | 340 | | |
330 | 341 | | |
| |||
343 | 354 | | |
344 | 355 | | |
345 | 356 | | |
| 357 | + | |
| 358 | + | |
| 359 | + | |
| 360 | + | |
| 361 | + | |
346 | 362 | | |
347 | 363 | | |
348 | 364 | | |
| |||
357 | 373 | | |
358 | 374 | | |
359 | 375 | | |
360 | | - | |
361 | | - | |
362 | | - | |
363 | | - | |
364 | | - | |
| 376 | + | |
| 377 | + | |
| 378 | + | |
| 379 | + | |
| 380 | + | |
| 381 | + | |
| 382 | + | |
| 383 | + | |
| 384 | + | |
| 385 | + | |
| 386 | + | |
| 387 | + | |
| 388 | + | |
| 389 | + | |
| 390 | + | |
| 391 | + | |
365 | 392 | | |
366 | 393 | | |
367 | 394 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
11 | 11 | | |
12 | 12 | | |
13 | 13 | | |
| 14 | + | |
14 | 15 | | |
15 | 16 | | |
16 | 17 | | |
| |||
191 | 192 | | |
192 | 193 | | |
193 | 194 | | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
194 | 201 | | |
195 | 202 | | |
196 | 203 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
| 11 | + | |
11 | 12 | | |
12 | 13 | | |
13 | 14 | | |
| |||
31 | 32 | | |
32 | 33 | | |
33 | 34 | | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
34 | 38 | | |
35 | 39 | | |
36 | 40 | | |
| |||
File renamed without changes.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
| 11 | + | |
11 | 12 | | |
12 | 13 | | |
13 | 14 | | |
| |||
35 | 36 | | |
36 | 37 | | |
37 | 38 | | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
38 | 46 | | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
39 | 50 | | |
40 | 51 | | |
41 | 52 | | |
| |||
0 commit comments