Comments (4)
You'll probably want to add the GenerateCodeFromAttributes
MSBuild target to a DependsOn
property of the other generators' MSBuild target.
from codegeneration.roslyn.
yup - that worked.
to be precise, took the following steps.
in the project/s with the attributes and the codegen classes:
- added the reference to the nuget tool package
<ItemGroup>
<PackageReference Include="CodeGeneration.Roslyn.Tool" Version="{replace with actual veetrsion used}" />
</ItemGroup>
- and the following target
<Target Name="RunCodeGenerationRoslynFirst" BeforeTargets="Build">
<CallTarget Targets="GenerateCodeFromAttributes" />
</Target>
NB: added the following to the project with the custom CGR attributes/codegens and not the other generators MSBuild target
- adding the depends on the other codegen/s would require building a custom build for its nuget package
BeforeTargets
for theRunCodeGenerationRoslynFirst
task can be easily updated based on inspection of the other codegen/s default targets- this does cause the problem when makes changes to custom CGR project, would require two builds to take effect. but an easy workaround could be to have two have separate project files - one for development and the other for usage (with the above target)
if there could be a better way - do advise, else please close the ticket.
from codegeneration.roslyn.
If you can share what exactly is that other generator, I could look and advise.
As is, your solution looks like a hacky one. Maybe a better one can be written.
from codegeneration.roslyn.
https://github.com/AArnott/CodeGeneration.Roslyn/wiki/Features#definitions
Please use terms as defined, so I'll be able to understand you quickly.
For a quick enhancement, you could replace CallTarget, which is rarely a good idea, with DependsOn=Generate... in your custom target.
from codegeneration.roslyn.
Related Issues (20)
- [0.7.43-alpha] Plugin.Sdk introduces a circular dependency in MSBuild HOT 2
- Add warnings for using pre-0.7 artifacts
- Fill/update package Descriptions HOT 1
- Allow custom props/targets additions in Plugin.Sdk HOT 1
- Empty output files HOT 4
- PluginMetapackage.Sdk implicit .Tool reference causes it to run
- Rename internal names in .Tool MSBuild props/targets HOT 1
- Add IncludeSymbols=false in Metapackage (if not set)
- Release v0.7 HOT 1
- Add LanguageExt.CodeGen as a migration example to wiki HOT 1
- Run code generation in parallel HOT 1
- Add performance tracking into the Tool HOT 1
- How does this relate to Source Generators from MS? HOT 7
- Make tool working with compatible versions HOT 1
- Build fails on 3.1.100 HOT 7
- Why not use `$(NuGetPackageRoot)` to determine the tool path?
- How generate new class HOT 1
- Question: Is it possible to create a new class from an attribute that targets methods? HOT 2
- .Net 5.0/3.1 support HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from codegeneration.roslyn.