Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Attribute based manifest system #60

Open
dazinator opened this issue May 12, 2016 · 0 comments
Open

Attribute based manifest system #60

dazinator opened this issue May 12, 2016 · 0 comments

Comments

@dazinator
Copy link
Owner

dazinator commented May 12, 2016

as discussed in #58

We should add a new feature to DnnPackager to allow an attribute based Manifest system.

Following is current suggestion of the fundamentals for how this can work:

  1. Install DnnPackager to your project as usual. Everything remains the same as before.
  2. To start using the attribute system, In the Package Manager Console type Install-Attributes
    • This will add the source code files for the packaging attributes to your project so that they get compiled within your own assembly which eliminates the need to distribute a third party assembly / dependency with your module.
  3. You can now prefix your classes with the appropriate attributes (yet to be defined)
  4. During build, DnnPackager will reflect through the classes in the output assembly, discovering the attributes (by attribute typename) - and it will then suppliment the existing manifest file with that information.

The information from attributes will suppliment the existing manifest file, not replace it completely.

For example, if you have an existing manifest with a package xml element in, and then you use the attributes system to declare another package - this result in a manifest.xml file with both packages in.

UPDATE: Another possiblity, rather than adding the attribute source code to the project, is to use a Fody Weaver, like JetBrains does for resharper: https://github.com/Fody/JetBrainsAnnotations

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant