PostSharp is the #1 pattern-aware extension to C# and VB. It allows developers to eradicate boilerplate by offloading repeating work from humans to machines. Includes some the most common patterns and gives you the tools to build your own.
To me PostSharp is all about removing repetitive tasks and validation outside of the main business logic, keeping the code clean and maintainable. It's probably the first thing I add to every new project.
Writing beautiful code and managing large projects is must for indie developers to make better project and it becomes very easy when using PostSharp, which allows one to focus on business logic instead of code complications.
PostSharp allows me to have my requirements fulfilled.
When I used PostSharp first time,I was looked to it as secondary tool, But now it is an essential part of my projects, because PostSharp lets me focus on business logic, while it is interested in other things like pattern model or logging or any cross tasks.
Postsharp works really well, I really like the logging and threading features that it provides. Its easy to apply Aspects to the code and to create aspects yourself if the provided aspects don't fit your situation.
First of all I should say I hate your product (P#). I use it just because other my team mates prefer not to write contracts for methods but use your automagic to imitate some of them. We had so many troblems with your magic!
Now we did upgraded our environment from mix of VS2010 and VS2013 to pure VS2015. During this process we upgraded P# from 2.2something to 4.1.14. I don't know why it isn't the last verision, hope it doesn't mean a lot. We used to put version 2 into TFS but version 4 requires to install it using NuGet and seams like you don't support old scenario. It is the first hate-point. But anyway I've put P# into TFS and unistalled it from my VS. We really don't need all of your fancy features, just some aspects to control not null parameters and things like that. I can build the product from command line. It's ok but had to remove so many junk you add when install P# using NuGet!!! It is the second hate-point 'cause I should remove this junk from more than 100 projects.
After I've removed this very extension from my VS I cannot build any project from inside VS! This THE MAIN hate-point! Every time I try to do it, I have a nug window "PostSharp Configuration" with request to Install PostSharp Tools for Visual Studio!
How I can avoid use your f... extension for VS and still use your odd job P#?
I'm sorry to hear your disappointment with the new version. I would like to thank you for sharing your negative experience. It is very useful. Positive feedback makes us feel good, but negative feedback makes us progress. The latter is more important.
You pointed very important points. Other users have mentioned the same frustrations and we already started working on it. We decided to address the following points in PostSharp 4.3:
1. There will be an alternative to using NuGet. The old good "zip" distribution will be back.
2. The VS extension will no longer be required. However it will be highly recommended if you want to have a decent debugging experience.
3. We will have a proper uninstaller.
4. We will not require a license to compile project that have been just freshly checked out from source control and not modified.
To answer your question specifically, you can avoid using the extension by defining the following environment variable or MSBuild property:
As a last point, please note that PostSharp is not for everybody and for every project. If your colleagues selected PostSharp only for code contracts, it is possible that the code savings may not pay off the friction. The more patterns you automate with PostSharp, the more it pays off. We can neither validate neither invalidate the design decisions that your team did. PostSharp is a sharp tool, and needs to be used with care.
I hope this helps.
Thank you Gael for your positive answer on my negative and emotionfull feedback! I really don't like any "magic" in code but I should use it in our code. I prefer to be explicit in my code.
Anyway thank you for your replay. I'll check it out.
I want be able to silent install post sharp tools for visual studio,
Using the post sharp trial version.
I tried to use the .vsix file,
but considering that I don't have a license it is problematic.
Is there a way to do that?
Hi guys, I tried to install PostSharp for VS 2015 under Windows 10 and I've got unexpected error, can you help me with that?:
---> PostSharp.Sdk.UserException: Could not start VsixInstaller.exe: The VSIX installer process failed with exit code -532462766. ---> PostSharp.Sdk.UserException: The VSIX installer process failed with exit code -532462766.
в PostSharp.HQ.Vsx.VsxProcess.InstallVsxTask.ExecuteVsix(String vsixPath, Boolean elevated) в c:\src\PostSharp-4.1\UserInterface\PostSharp.HQ\Vsx\VsxProcess.cs:строка 428
--- End of inner exception stack trace ---
в PostSharp.HQ.Vsx.VsxProcess.InstallVsxTask.ExecuteVsix(String vsixPath, Boolean elevated) в c:\src\PostSharp-4.1\UserInterface\PostSharp.HQ\Vsx\VsxProcess.cs:строка 433
в PostSharp.HQ.Vsx.VsxProcess.InstallVsxTask.Execute() в c:\src\PostSharp-4.1\UserInterface\PostSharp.HQ\Vsx\VsxProcess.cs:строка 401
-532462766 is general exit code for unhandled exception. This usually happens when the installer is executed with insufficient rights. We are going to address these kind of issues soon. In the mean time please, could you try to run the installer as administrator? If it doesn't help, please could you report this issue to our forum (support.sharpcrafters.com/) and attach a VSIXInstaller_*.log file that is created during installation in %temp% folder?
If you're talking of a farm of build servers, then PostSharp does not need to be installed at all because it is deployed through NuGet.
If you need to deploy the VS tooling to many desktop stations, the best is to ask all developers to install it manually on their machine. If you're a commercial customer please contact our support and we may be able to help automate the deployment, but there is no easy option.
If the official answer is that I can no longer have an unattended install option to my development environment, then I guess I'll have to look at one of the other Aspect-Oriented frameworks out there... Please don't let the answer be, "Install it manually..."
Could you please explain your deployment scenario? We generally don't get requests for unattended installation even from commercial teams of hundreds of users, so I would like to understand why it is so important to you.
I work in an environment of about 60 developers where we try to automate every install we can... This allows us to pave a machine and then reinstall the complete development environment quickly and also ensures that the version of the Visual Studio extension stays the same across the environment. In the past, I've used the "vsixinstaller /q /a /i "postsharp.xxx.vsix" to install the extension into Visual Studio. We still use NuGet to handle the actual DLLs which is how the build servers get PostSharp and where the version of the PostSharp DLL is also project specific. The download link above now points to an EXE file instead of a VSIX file and the EXE appears to not have any way to script the install of the extension. My organization hasn't moved to this version yet and the older NuGet packages that we are using will install the extension relevant to the version of PostSharp used in the project so, for now, we’ll stick to that deployment method.
Sorry for late answer, I did not notice your reply.
You can download the exe file from VS Gallery and unpack it with 7-zip. You will find two VSIX files inside, one for VS 2012 and one for VS 2015. From there you can use VSIXInstaller.
I hope this helps.
I can't install the PostSharp's extension on VS 2015 Enterprise, when I trying to install it, it says "Install 'PostSharp Tools for Visual Studio 2012-2013', at the end its installed on VS 2013 that I also have installed but no in VS 2015. I'm running on Windows 10 x64 Enterprise.
Not very important. There is no need to keep exact match between dll and the extension. If the extension is much older than the dll, then the extension could add some code (e.g. via code actions) that is not compatible with the new dll.
The issue has been reported in our support forum (http://support.sharpcrafters.com/discussions/problems/2707-c-project-properties-build-and-debug-options-disappear-after-installing-postsharp-4114). We will follow up there.