Comments (7)
GetUsage has an overload that takes a string parameter that is the exe name. When you use the overload it doesn't try to get the assembly location automatically. You should use this in unit tests. I do it in the unit tests for the product itself.
from powerargs.
Right. Should have thought of that. Thanks. Will do.
from powerargs.
Thought about this some more:
Though you've provided a reasonable work-around which solves my current problem, I still believe that the fact that your library throws a null reference exception when used "correctly" is a bug. And by "correctly", I mean used in a way that your application support such as calling GetUsage() with no parameter.
Since GetEntryAssembly() is documented to return null under certain situations, you should be checking for null before dereferencing.
So I still believe this is a bug.
from powerargs.
Codatrix,
I agree with you, however I also think that this is opensource software and for us to embrace it means to fork it an apply the fix and ask for a pull request.
Adam would appreciate the help :)
from powerargs.
I'll see if I can find the time to do that. Thanks! :-)
from powerargs.
Thanks for the collaboration. It's a pretty small change. I'm thinking something like this:
if (exeName == null)
{
var assembly = Assembly.GetEntryAssembly();
if (assembly == null) throw new ArgException("PowerArgs could not determine the name of your executable automatically. This may happen if you run GetUsage<T>() from within unit tests. Use GetUsageT>(string exeName) in unit tests to avoid this exception.");
exeName = Path.GetFileNameWithoutExtension(assembly.Location);
}
Will that suit your needs?
Thanks,
Adam
from powerargs.
Fixed
from powerargs.
Related Issues (20)
- Add support for a warning on usage of obsolete enum value HOT 1
- Implementation of ContextAssistSearch doesn't get initialized HOT 1
- Slash (/) with positional arguments running on Linux & MacOS HOT 2
- How to specify command line parameters with double dashes (eg. --help) HOT 1
- Boolean args as 'flags'? HOT 1
- String args with 'null' as default throw unhandled exception HOT 1
- New Release Pending? HOT 1
- validation message missing for ArgCantBeCombinedWith HOT 1
- Prompting for input despite PromptIfMissing=false on Required arg HOT 3
- Allow zero-length list of argument values to be terminated by next option
- How to parse into an array? HOT 2
- Issue with scrolling in console HOT 2
- Issue running on Linux HOT 3
- Scrolling and background issues on 4.0.0. Works on 3.6.0 HOT 2
- Some links broken in README.md HOT 1
- Validator only checks first item in List arguments HOT 1
- Release 4.0.2 is not strongnamed (4.0.0 is, as well as 3.6.x) HOT 1
- Change executable name in 'help'?
- bool reviver not working
- Use param label as value
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 powerargs.