To increase the chances of a quick and helpful answer to your question in this forum please follow these guidelines:
- Write a separate post for each unrelated question . That is, if you have three problems, write three separate posts, because each one will be solved independently, maybe even from different people.
- Once someone has solved your question and the thread is marked as solved, don't append a different, unrelated question to it . Create a separate thread. Some people answering questions don't open threads that are marked as solved, so your question will remain unread.
1) About the subject of the post
- Prefix the subject of your question with the kind of extension that you are developing. For example:
- SDK Package:
- VS Shell:
- Custom Tool:
The reason is that not everybody answering questions (whether from Microsoft, MVPs or others) knows about everything so it's a waste of time to force them to open a post to read inside the kind of extension. And even knowing about everything, the answer is quite different for add-ins or packages, for example, so you can get the correct answer for the wrong kind of extension.
- Write a descriptive (and even enticing) subject about the problem . Vague subjects such as "Please help" or "Add-in problem" don't invite to open and read the post as much as "Add-In: problem registering add-in on Windows Vista with standard user". It doesn't help either others searching for threads with a similar problem.
2) About the body of the post
- Specify the kind of extension that you are developing (add-in, SDK Package, VS Shell, DSL Tools, macro, template, designer, custom tool, etc.) specially if you haven't done it in the subject.
- Specify the Visal Studio version (and service pack) that you are using :
- Visual Studio .NET 2002
- Visual Studio .NET 2003
- Visual Studio 2005
- Visual Studio 2008
- Visual Studio 2010 (CTP, beta, RC)
- Specify the Windows version : Windows Vista introduced security mechanisms and shell folders locations that can make extensions to behave differently than on Windows XP if not coded properly.
- Describe accurately the problem : if there is an error (such as a COM error), provide the error number and literal error text. If it is a .NET exception, provide the exception name (such as NullReferenceException) and the exception text. If there is no error or exception, describe the observed behavior as detailed as possible. Vague descriptions such as "it doesn't work" don't help at all.
- Specify the .NET language . VB.NET and C# projects can behave differently.
- Provide the code to reproduce the problem : if the problem is in your code, there is a chance close to 0% that someone else can help you without looking at the code.
- Provide the minimal code : typically bugs are in a single line of code, so the more lines of code you provide, the more you are hiding the problem. Remove all the code that is not needed to reproduce the problem. That includes:
- XML comments.
- Regular comments if it is obvious what the code is doing
- Code that is not called when reproducing the problem
In general, 10 or 20 lines of code should be enough to reproduce any problem. If you provide dozens and dozens of (useless) code the willingness of others to read the code will decrease. And most people are not willing to create a new project, copy/paste the code and debug it to reproduce the problem because 1) it takes more time than reading and 2) it dirties Visual Studio with new extensions. They just prefer to read the minimal code to spot the problem.
- Provide a step by step detailed procedure to reproduce the problem : for example:
- Open Visual Studio 2008
- Click the "File", "New Project" menu.
- In the "New Project" dialog, select the "Visual Basic\Database", "SQL Server Project" template, not the "Database Projects\Microsoft SQL Server" or "Other Project Types\Database" types.
- Go to the Add-In Manager and load the add-in if it is not loaded
- Specify if the problem happens on the developer machine or on the end user machine : when you create or debug an extension, Visual Studio performs some actions (registration, UI reset, etc.) that don't happen when the extension is run on the end user machine.
So useful, just let us know:
1)how the system treats reply and quote?
and which of them will be sent to you when you answer the thread specially after it is checked as answer.
2)when you check the thread as answered, but it is still unanswered for us, what we have to keep it open?do we have to repeat the question?
1) There is a specific forum for such questions:
Forums Redesign - Q&A / Discussions
2) When someone "answers" a question, normally marks is as "Proposed" and it is the person who posted the original question who verifies and marks it as "Answer" (alternatively a moderator can mark it as "Answer" after some days if the person didn't provide feedback, but the person can unmark it as answer).
MZ-Tools: Productivity add-ins for Visual Studio: http://www.mztools.com. My blog about developing add-ins: http://msmvps.com/blogs/carlosq/