Visual Studio Scrum 1.0 - visual-studio-2010

I created a new team project with the Visual Studio Scrum 1.0 template. I'm trying to migrate my work items from the MSF Agile Template 5.0 to that one using the TFS Integration Tools/Platform.
I created the Work Item Type Mappings in the xml:
Bug > Bug
Issue > Impediment
User Story > Product Backlog Item
Task > Task
I get many conflicts...but the relevant ones to this question are:
Details: Work Item Type 'Issue' is not mapped in the configuration
Details: Work Item Type' User Story' is not mapped in the configuration
I created the configuration using the WorkItemTracking.xml template.
I'm using the following xml
<SettingXml>
<WITSessionCustomSetting>
<Settings />
<WorkItemTypes>
<WorkItemType LeftWorkItemTypeName="Bug" RightWorkItemTypeName="Bug" fieldMap="##ALL##" />
<WorkItemType LeftWorkItemTypeName="Task" RightWorkItemTypeName="Task" fieldMap="##ALL##" />
<WorkItemType LeftWorkItemTypeName="User Story" RightWorkItemTypeName="Product Backlog Item" fieldMap="##ALL##" />
<WorkItemType LeftWorkItemTypeName="Issue" RightWorkItemTypeName="Impediment" fieldMap="##ALL##" />
</WorkItemTypes>
<FieldMaps>
</FieldMaps>
<ValueMaps />
</WITSessionCustomSetting>
</SettingXml>
I've added rules to ignore the Target Field Does Not Exist conflicts.
Any idea what's going on here?

Looks like implicit mapping in TFS Integration Platform is really buggy. Added explicit field mappings and it worked.

Is it possible that your "left" and your "right" are switched?
Thanks,
Erin

Related

Adding a custom property to the VS Project Designer

I am creating a Visual Studio extension and have added a custom configuration-specific property to an existing Microsoft Visual C++ (vcxproj) project using the IVsBuildPropertyStorage interface.
I would like to have that custom property show up in the Project Designer's property pages, as part of a new property page. There is some information on how to achieve that for a custom project type but the approach relies on reimplementing the project system which is not appropriate for all situations. Is there a way to extend the Project Designer for an existing project type?
One way to customise the Project Designer pages for a vcxproj is to include an additional property schema by adding the following:
<ImportGroup Label="PropertySheets" />
<ItemGroup>
<PropertyPageSchema Include="proppage.xml">
<Context>Project</Context>
</PropertyPageSchema>
</ItemGroup>
to a project which can be done by either copying this snippet into the project file directly or by putting it into a custom props file and including that into the project. Details on the structure of a property page schema are available here.
The main issue with this approach is that it requires manual intervention or an explicit step for setting up a project to use the custom property page, making it unsuitable for my use case.
It is also bit cumbersome as it requires shipping one-two additional files with the extension and it leaves a footprint in the project file. I would like to come across a more minimalistic solution that automatically applies to all MS VC++ projects but does not modify the project files unless the user inputs a property into the custom property page.

TFS Project not recognizing Work Item changes

I have been tasked with updating the work item templates in Team Foundation Server for my Scrum team.
One such update is to add a field "Type" to the "Bug" work item. However, after doing so, and adding it to the layout, it is not appearing when I create a new work item, yet it shows when I "preview form". How can I get it to appear?
I've already uploaded my changes to the server, imported the changed file, refreshed the server, reopened VS, and checked the XML file to make sure it is properly formatted.
Also, when I create a new "Bug" work item and attempt to save, an error displays, saying that the "Type" field cannot be empty, which is not visible on the template.
Any help would be appreciated.
Work item forms are cached in Visual Studio for performance reasons. Try closing all your work items, refreshing Team Explorer (click the refresh icon at the top of the Team Explorer window) and then opening the work item form again. You should find it now displays as expected.
Additionally, you could look at the work item form in the web interface. You'll probably find that it is already showing correctly. Again, the web page tends to cache the form definitions, so you may need to hit F5 in the web browser to see the updates.
After much tribulation, I have solved my issue, and it was quite simple.
On the "Layout" tab of the Work Item in question, I had to change two settings. First, I had to st "Read-only and Empty Fields" to "False" and then set the field attribute of the field I was adding to "Fieldcontrol".
Everything works as intended now.
I'll share another answer for people who are encountering this issue. In my case, some test cases within a plan/suite reflected the imported changes. Others did not.
I tried a couple different alternatives. After looking at the differences between the two test cases, I noticed that the iterations were different. In fact, the unchanged Test Cases used an iteration from an entirely different Team Project.
At this point it should be noted these suites were Requirement Based. So it looks like we were somehow able to attach test cases from different team projects to the PBIs. This is why the changes weren't reflected, because the TC's were from a different Team Project.
Hope this helps someone else who may have performed a migration or some other crazy stuff like we had.
I had a similar issue after I imported the xml file via WitAdmin, after changing the STate field. Solution was I did not have any Transition items for the item.
Example, I created a new state "On hold"
<STATES>
...
<STATE value="Removed" />
<STATE value="On Hold" />
</STATES>
Then had to add below in order to see:
<TRANSITIONS>
...
<TRANSITION from="Active" to="On Hold">
<REASONS>
<DEFAULTREASON value="Waiting for further requirements" />
<REASON value="Waiting for upgrade" />
<REASON value="Need more info" />
</REASONS>
</TRANSITION>
<TRANSITION from="New" to="On Hold">
<REASONS>
<DEFAULTREASON value="Waiting for further requirements" />
<REASON value="Waiting for upgrade" />
<REASON value="Need more info" />
</REASONS>
</TRANSITION>
</TRANSITIONS>

Update Private Gallery atom such that VS shows that an extension update is available

I'm using a Visual Studio Private Gallery to publish a VSIX internal to my company. My VSIX shows up in the "Online" section of "Extensions and Updates" in Visual Studio 2012 and I can install it from there:
However, once it's installed, I can't figure out how to update my extension in a way that makes it show up in the "Updates" section of that same dialog box, nor can I figure out how to make Visual Studio notify me that an update is available.
I've tried various combinations of the following:
Increasing the version number in the VSIX itself and in the atom.xml
Changing the updated tag inside of the entry tag to the current date and time
Changing the updated tag inside of the feed tag to the current date and time
Changing the published tag inside of the entry tag to the current date and time
My expectation was that a combination of 1, 2, and 3 should be enough to show that there is an update, but to no avail. This guide seems to confirm my expectation:
Published - The date/time when the extension was added.
Updated - The date/time when the extension was last updated.
I've also tried all 4 at the same time, also to no avail.
I'm serving the gallery from an Apache instance, and I've confirmed that it's setting a correct Last-Modified header for the atom.xml .
Is there some interval at which Visual Studio checks for updates? Does opening the "Updates" section of "Extensions and Updates" not force Visual Studio to check?
Here's the contents of my atom.xml:
<?xml version="1.0" encoding="utf-8" ?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title type="text">Visual Studio Extension Gallery</title>
<id>uuid:CDC295B0-7885-4B59-9BDF-F059A9F4B338;id=1</id>
<updated>2013-12-11T19:00:00Z</updated>
<entry>
<id>MyVSIX..b242c6de-d0a6-4ba1-9672-b866e36607d3</id>
<title type="text">MyVSIX</title>
<summary type="text">MyVSIX is a nifty extension that does things.</summary>
<published>2013-12-11T19:00:00Z</published>
<updated>2013-12-11T19:00:00Z</updated>
<author>
<name>daxelrod</name>
</author>
<content type="application/octet-stream" src="vsix/MyVSIX.vsix" />
<Vsix
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://schemas.microsoft.com/developer/vsx-syndication-schema/2010"
>
<Id>MyVSIX..b242c6de-d0a6-4ba1-9672-b866e36607d3</Id>
<Version>0.5</Version>
<References />
<Rating xsi:nil="true" />
<RatingCount xsi:nil="true" />
<DownloadCount xsi:nil="true" />
</Vsix>
</entry>
</feed>
I should also note that my extension is not Strong Name Signed, because it uses a third party assembly that is unsigned. Does that make a difference?
I had the same Issue and made some deep investigation. In my case it was odd, that my extension always shown as "Download" in the Private Gallery instead as "Installed" (the Green Hook). So I guessed there is a missing Link between the Gallery item and the installed Item
The answer is as simple as annoying:
The ID has to be "THE ID".
So the Product ID (in the VSIX Configuration) is the reference which has to be in the Atom-File.
In Your case:
<Vsix>
<Id>b242c6de-d0a6-4ba1-9672-b866e36607d3</Id>
</Vsix>
As you see: Withyout your "MyVSIX..".
After that it will recognize your Extension and if installed also hide the "Download" Button within the Gallery
For Update:
It's enough if you increase the < Version > Content.
For The Update Cycle (my experience):
It checks on start of the Visual Studio (once Daily, if in Option enabled)
It checks every time you open the "Extensions and Updates". So reopen after a save of the XML should be enough.
EDIT: (thanks for the Upvote)
Here the Pictures for better understaning (made in VS2013, but almost same for VS2012)
The ID in the VSIX File.
How it should look like in the Atom-Feedfile.
<Vsix>
<Id>d4d50729-a612-4260-9b2e-3a61ad5e2207</Id>
</Vsix>
How it should look if you correctly linked between Gallery and VSIX File.
We tried to use an atom.xml in a private gallery for an automatic update. It did not work at all, even after removing the name from the ID in the VSIX tag. We are using a package developed for VS 2015.
Then, looking more carefully, we realized that the ID of the package class, that is also present in the vsct file, is different from the ID defined in the manifest file: source.extension.vsixmanifest. While the first is a pure GUID the second is a concatenation of the name, producer and another GUID.
Something like:
MyVSIX.MyCompany.GUID (in form of xxxxxxxx-xxxx...)
When we used the second one, everything worked perfectly. We even managed to update packages that were previously installed by double-clicking the vsix file.
I want to thank you as this article was a very good start to solve our problem.
All the best,
Dan Vasilescu
it looks like VS only checks for updates once a day, but I wasn't able to get it to detect an updated extension in an Atom gallery.

How to change the z-order of classes in the Visual Studio Class Designer?

Maybe I am misunderstanding what the Class Designer in Visual Studio was intended for, but I am really struggling with expanded classes being displayed behind other classes on the canvas.
I would like to have two collapsed classes, one above the other. Then when I expand the class above it should display above the class below, so that the class below does not obstruct the members of the class above.
I realise that adding my classes in the right order will do this, but I don't want to re-add all controls when I want to change layout. Where is the "Send to Back / Send to Front" button??
Not sure this is still an issue but I just had a similar problem when visualizing things in "UML-like" structures in VS 2013.
I found that a more or less simple way might be to change the order in the .layout file:
The example hopefully shows how to do:
First example - Action is "under" the Object:
<actionShape Id="..." absoluteBounds="..." customColor="...">
<opaqueActionMoniker Id="..." LastKnownName="Action1" />
</actionShape>
<objectNodeShape Id="..." absoluteBounds="..." customColor="White">
<objectNodeMoniker Id="..." LastKnownName="Object" />
</objectNodeShape>
Second Example: I changed the order. The Action is above the Object:
<objectNodeShape Id="..." absoluteBounds="..." customColor="White">
<objectNodeMoniker Id="..." LastKnownName="Object" />
</objectNodeShape>
<actionShape Id="..." absoluteBounds="..." customColor="...">
<opaqueActionMoniker Id="..." LastKnownName="Action1" />
</actionShape>
I know, this is probably not the best way to do but it's the best I found.
Hopefully it helps to anyone.
Sorry for digging up an old post, but from the looks of it there aren't any such buttons, nor have they been added in Visual Studio 2012. Based on what I found in the MSDN forums here, this has been brought up before. I'm not sure if either of the posters in that thread actually went on to add the suggestion in Microsoft Connect, since it seems to be all VS 2012 now, but I've added a request for it here. Hopefully they get around to it eventually.

Switch from VB to C# in Workflow Designer

I'm creating an Activity Library in Visual Studio 11 Beta (although I've repeated all my steps in VS2010 with the same result), targeting the .NET 4.0 framework.
As I started entering arguments via the Workflow Designer, I noticed the "Enter a VB Expression" message in the Default Value box. I'm not sure how to change the language context from VB to C#.
To create the project, I followed these steps:
Go to File> New and select Project...
In the Installed> Templates section of the New Project dialog window, select Visual C#> Workflow> Activity Library
Name the project, as usual, and click OK
And that's basically it. I noticed then that the default Activity1.xaml file was expecting VB in the default values fields. I deleted it and then followed these steps to create a new Activity:
Right-click on the project and select Add> New Item...
In the Add New Item dialog window, navigate to Installed> Visual C# Items> Workflow> Activity
Name the Activity and click OK
It was the same result, the Default Value fields are expecting a VB expression.
When I look at the XAML code, I can clearly see the Microsoft.VisualBasic.Activities namespace listed and a VisualBasic.Settings element, but I'm not sure what to do to change it; everytime I try, I just end up screwing things up. Here's the XAML code being generated:
<Activity mc:Ignorable="sads sap" x:Class="THINKImport.CustomerAddOrderAdd"
xmlns="http://schemas.microsoft.com/netfx/2009/xaml/activities"
xmlns:local="clr-namespace:THINKImport.THINKWebReference"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:mva="clr-namespace:Microsoft.VisualBasic.Activities;assembly=System.Activities"
xmlns:s="clr-namespace:System;assembly=System.Core"
xmlns:s1="clr-namespace:System;assembly=System"
xmlns:s2="clr-namespace:System;assembly=System.ServiceModel"
xmlns:s3="clr-namespace:System;assembly=mscorlib"
xmlns:sads="http://schemas.microsoft.com/netfx/2010/xaml/activities/debugger"
xmlns:sap="http://schemas.microsoft.com/netfx/2009/xaml/activities/presentation"
xmlns:t="clr-namespace:THINKImport"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<x:Members>
<x:Property Name="user_login_data" Type="InArgument(local:user_login_data)" />
<!--Removed the other properties for brevity-->
</x:Members>
<sap:VirtualizedContainerService.HintSize>440,440</sap:VirtualizedContainerService.HintSize>
<mva:VisualBasic.Settings>Assembly references and imported namespaces for internal implementation</mva:VisualBasic.Settings>
</Activity>
I was able to figure out the issue.
First, though, I was able to discover the root cause here. In a nutshell, it says VB.NET must be used in the Expression Editor even if the program is in C#.
So, I was kinda bummed about that, but I decided to take another crack at the XAML code because, in working through the WF tutorials, there was most definitely an activity I was working on in the designer that would accept Expressions in C#. I opened up that project and went through the XAML code.
It's then that I noticed this line:
<sap2010:ExpressionActivityEditor.ExpressionActivityEditor>C#</sap2010:ExpressionActivityEditor.ExpressionActivityEditor>
I searched the MSDN library and found the documentation for the ExpressionActivityEditor class. As best as I can tell, this is new to .NET 4.5. In my particular case, there isn't any reason I can't target .NET 4.5 in my project, so I changed it. Once the solution reopened, right away, all the Expression Editor text fields and boxes would accept C#. In order to "start fresh", I deleted the activity file I had been working on and created a new one. If anyone's interested, here's that generated XAML code:
<Activity mc:Ignorable="sap sap2010 sads" x:Class="THINKImport.CustomerAddOrderAdd"
xmlns="http://schemas.microsoft.com/netfx/2009/xaml/activities"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:sads="http://schemas.microsoft.com/netfx/2010/xaml/activities/debugger"
xmlns:sap="http://schemas.microsoft.com/netfx/2009/xaml/activities/presentation"
xmlns:sap2010="http://schemas.microsoft.com/netfx/2010/xaml/activities/presentation"
xmlns:sco="clr-namespace:System.Collections.ObjectModel;assembly=mscorlib"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:THINKWebReference="clr-namespace:THINKImport.THINKWebReference">
<x:Members>
<x:Property Name="user_login_data" Type="InArgument(THINKWebReference:user_login_data)">
<x:Property.Attributes>
<RequiredArgumentAttribute />
</x:Property.Attributes>
</x:Property>
<x:Property Name="customer_data" Type="InArgument(THINKWebReference:customer_data)" />
<!--Remainder of Properties removed for brevity-->
</x:Members>
<sap2010:ExpressionActivityEditor.ExpressionActivityEditor>C#</sap2010:ExpressionActivityEditor.ExpressionActivityEditor>
<TextExpression.NamespacesForImplementation>
<sco:Collection x:TypeArguments="x:String">
<x:String>System</x:String>
<x:String>System.Collections.Generic</x:String>
<x:String>System.Data</x:String>
<x:String>System.Linq</x:String>
<x:String>System.Text</x:String>
</sco:Collection>
</TextExpression.NamespacesForImplementation>
<TextExpression.ReferencesForImplementation>
<sco:Collection x:TypeArguments="AssemblyReference">
<AssemblyReference>mscorlib</AssemblyReference>
<AssemblyReference>System</AssemblyReference>
<AssemblyReference>System.Core</AssemblyReference>
<AssemblyReference>System.Data</AssemblyReference>
<AssemblyReference>System.ServiceModel</AssemblyReference>
<AssemblyReference>System.Xml</AssemblyReference>
</sco:Collection>
</TextExpression.ReferencesForImplementation>
<sap2010:WorkflowViewState.IdRef>
THINKImport.CustomerAddOrderAdd_1
</sap2010:WorkflowViewState.IdRef>
<sap2010:WorkflowViewState.ViewStateManager>
<sap2010:ViewStateManager>
<sap2010:ViewStateData Id="THINKImport.CustomerAddOrderAdd_1" sap:VirtualizedContainerService.HintSize="440,440" />
</sap2010:ViewStateManager>
</sap2010:WorkflowViewState.ViewStateManager>
</Activity>
So, quite a bit different (to me, anyways) but I can use C# now, so I'm happy.
C# Expressions
Previously, all expressions in workflows can only be written in Visual
Basic. In .NET Framework 4.5 RC, Visual Basic expressions are only
used for projects created using Visual Basic. Visual C# projects now
use C# for expressions. A fully functional C# expression editor is
provided which capabilities such as grammar highlighting and
intellisense. C# workflow projects created in previous versions that
use Visual Basic expressions will continue to work.
As of Beta 1, C# expressions are validated at design-time. Errors in
C# expressions will be marked with a red wavy underline.
More: What's New in Windows Workflow Foundation in .NET 4.5

Resources