Comments (5)
Good catch. Looks like the MSBuild property OutputType
is what you want. It has possible values of "Library", "Exe", "Module", or "Winexe". Those look like they map pretty well to the OutputKind
enum in Roslyn.
You can get the MSBuild property from the MSBuild ProjectInstance
instance (ProjectAnalyzer.CompiledProject
or the return value of Compile()
) like this:
string outputType = analyzer.CompiledProject?.GetPropertyValue("OutputType");
Be sure to check for null on the ProjectAnalyzer.CompiledProject
property since it won't be set if compilation failed.
from buildalyzer.
Didn't see GetPropertyValue
, that's far more elegant than my solution:
projectInstance.Properties.FirstOrDefault(x => x.Name == "OutputType");
😁
So you have to compile the project before you can figure out its output type? Can it not be inferred from the .csproj file?
from buildalyzer.
Hmm... Might be available on the Project
instance after Load()
.
from buildalyzer.
Yup, there it is! Much better, thanks. Currently putting together a PR now.
from buildalyzer.
There we go, #8 adds CompilationOptions
and is ready for review.
from buildalyzer.
Related Issues (20)
- Support for .Net Standard 2.0 HOT 2
- `PublishSingleFile` breaks `IProjectAnalyzer.Build()` HOT 15
- Version number not available for packages added using GlobalPackageReference in Directory.Packages.props HOT 7
- Unsupported log file version HOT 8
- Cache dotnet info results per global.json file HOT 5
- Error when trying to read dotnet --info HOT 3
- multiple Buildalyzer.Tests unit tests are failing HOT 3
- Make working directory used by ProcessRunner configurable HOT 3
- [Discussion] Calling `GetCompilationAsync` on ASP.NET Framework project returns empty compilation HOT 3
- Help offered HOT 1
- Could not load file or assembly `NuGet.Frameworks` HOT 16
- Build/assembly reference not found errors due to random sorting of the projects in the Workspace when loading projects from solution file HOT 9
- Xml documentation is missing for imported symbols in Roslyn Projects HOT 3
- Looking For A New Maintainer HOT 4
- Sponsoring HOT 4
- Coding style, static code analysis, and versioning HOT 15
- Immutability HOT 3
- Targeting netstandard HOT 1
- Error running on macos-14-arm64 image
- Buildalyzer hangs if build does not start
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 buildalyzer.