Skip to content

Conversation

@CalvinAllen
Copy link
Contributor

Summary

  • Add ProjectReference to VSIX project when adding project-based assets or dependencies
  • Use type-specific output groups (PkgdefProjectOutputGroup for VsPackage/ToolboxControl, TemplateProjectOutputGroup for templates)
  • Add ReferenceOutputAssembly=false for template assets
  • Generate correct project tokens with output groups (|ProjectName;OutputGroup|)
  • Add %CurrentProject% source option for self-referencing assets
  • Handle template RequiredFolder pattern (Path = folder, TargetPath = token)
  • Remove ProjectReference when removing project-based assets
  • Add file to project with IncludeInVSIX when adding file-based assets
  • Clear dialog fields when source type changes

Test plan

  • Add a project asset (VsPackage type) and verify ProjectReference is added with correct output groups
  • Add a template asset and verify ReferenceOutputAssembly=false is set
  • Use "This Project" source and verify %CurrentProject% token is used
  • Remove a project asset and verify ProjectReference is removed
  • Change source type in dialogs and verify fields are cleared

Closes #8

Implement project and file integration to match the original VS manifest
designer behavior:

- Add ProjectIntegrationService to manage .csproj modifications
- Add ProjectReference with IncludeOutputGroupsInVSIX metadata when
  adding project-sourced assets or dependencies
- Use TemplateProjectOutputGroup for template asset types
- Remove ProjectReference when removing assets (if not used elsewhere)
- Add files to project with IncludeInVSIX when adding file-sourced assets
- Prompt user about file removal when removing file-sourced assets
- Track ProjectFullPath in Asset and Dependency models

Closes #8
- Use type-specific output groups (PkgdefProjectOutputGroup for VsPackage/ToolboxControl, TemplateProjectOutputGroup for templates)
- Add ReferenceOutputAssembly=false for template assets
- Generate correct project tokens with output groups (|ProjectName;OutputGroup|)
- Add %CurrentProject% source option for self-referencing assets
- Handle template RequiredFolder pattern (Path = folder, TargetPath = token)
- Clear dialog fields when source type changes
@CalvinAllen CalvinAllen merged commit b051653 into main Jan 6, 2026
1 check passed
@CalvinAllen CalvinAllen deleted the feat/assets/project-file-integration branch January 6, 2026 15:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

feat(assets): match original designer's project and file integration behavior

2 participants