-
Notifications
You must be signed in to change notification settings - Fork 16
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
Support for new csproj version properties #25
Comments
Sorry about the slow response. I'm currently at a conference, which demands my attention. I think it sounds like a good idea to support the new file format 👍 I have to admit that I've done little professional .NET work for the last couple of years, so I haven't kept up to date with developments. This means that essentially, I currently don't have the knowledge to evaluate whether or not the above specification is appropriate. The most important quality of any change in that direction is that the old functionality still works, without any breaking changes. You're welcome to send a pull request, but I'll probably solicit help from other people to review it, since this currently exceeds my expertise. |
My situation is more or less similar to @ploeh, but it happened to do some work in the past year converting .csproj (and .fsproj) to the new file format, so I may be able to help by taking a look on related pull requests. |
@sparerd, FTR, I've worked with @moodmosaic for many years, and trust his judgement. If he's willing to help me out with a review, we should be able to work together to produce something useful 😄 |
@ploeh @moodmosaic Sounds great to me, I'll get cracking. First step is to learn some F# 😉
Agreed. My company is still largely on the old AssemblyInfo.cs style. Any implementation will be focused on supporting a mixed-csproj environment without any breaking changes. Enjoy your conference! |
I have the very basic cases working. I'll need to work through the corner cases over the next week. Do you prefer PRs when all work is complete or while still in-progress (pair-programming-over-the-internet style)? |
I prefer small, complete pull requests, please 😄 |
Sounds good. I'll submit when ready for final review. |
Add support for managing version numbers within the new style of csproj. While it is possible to continue using the AssemblyInfo.cs file for managing version data with the newer project format, it does require setting
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
which has implications for other project properties.Sample project file:
Specs
Version
property is the default property for managing version information. By default, all other version properties take their values from this property.Version
property with the new version number. Versions begin at1.0.0.0
for new projects.Version
property exists in the file, update it with the new version number (regardless of the existence of other version properties).Version
property is found, but only oneAssemblyVersion
orAssemblyFileVersion
are found (exclusive-or), add aVersion
property with the new version number taken from the preexisting version field (AssemblyVersion
orAssemblyFileVersion
).Version
property is found, but bothAssemblyVersion
andAssemblyFileVersion
are found, do not add aVersion
property.Version
property can contain extended version data beyond the patch number (ex.1.2.3.4-beta1
). The extended version data will be treated as a version part with lower rank than thepatch
part and will be removed as part of any version update operation.AssemblyFileVersion
AssemblyFileVersion
property is ever found, update it with the new version number.AssemblyFileVersion
property is not found, do not add it.AssemblyVersion
AssemblyVersion
property is ever found, update it with the new version number.AssemblyVersion
property is not found, do not add it.If this looks good to you, I would be willing to put in a PR. I haven't worked with F# before (I'm a C# dev), but it would be fun to give it a go.
The text was updated successfully, but these errors were encountered: