2012年8月26日日曜日

[ソース管理] VisualStudio2010+TeamFoundationServer2012 でチームプロジェクトが作成できない罠

Team Foundation Server 2012をインストールしたサーバーに対して、
Visual Studio 2010からチームプロジェクトを作ろうとしたら、

「TFS30172: 現在のユーザーには新しいチームプロジェクトを作成するのに十分なアクセス許可がありません。」

的なメッセージが。

おかしい…権限はあるはずなのに…。

エラーメッセージで検索したら以下のブログが見つかった。
http://noblevelop.com/tf30172-you-do-not-have-permission-to-create-a-new-project/
http://blogs.msdn.com/b/buckh/archive/2012/03/05/permission-error-with-creating-a-team-project-from-vs-2010-on-tfs-11-beta.aspx

不具合?かどうかは知らないけどとにかくできないらしい。しかも権限の問題ではないらしい…。


Visual Studio 2012だとチームプロジェクトを作成する事ができるので、
VS2012でチームプロジェクトを作成しておいてそれをVS2010から利用することはできるみたい(なんてまわりくどい使い方)。

そのうちアップデートで修正されるのだろうか。

2012年8月19日日曜日

[C#] LINQでXMLの内容をクラスにぶち込む

XMLをクラスに入れて扱いやすくしたかった。


LINQ to XML についての参考サイト
http://code.msdn.microsoft.com/windowsdesktop/22-LINQ-to-XML-XML-c2f6f04f

上のサイトのコード例を少し変えてクラスにぶち込むようにした。


こういうクラスを用意して

public class Person
{
    public string ID { get; set; }
    public string Name { get; set; }
}


XMLの要素をクラスにぶち込む

// XML文字列
string xmldoc =
  @"<?xml version='1.0'?>
<names xmlns='http://www.piedey.co.jp/example/linqtoxml201003'>
  <name id='M0001'>一郎</name>
  <name id='M0002'>次郎</name>
  <name id='F0001'>花子</name>
</names>
";

// XElementを取得. XElementにするとLINQで扱えるようになる
// (名前空間も System.Xml.Linq.XElement となってる)
var doc = XElement.Parse(xmldoc);

// 名前空間
XNamespace ex =
    "http://www.piedey.co.jp/example/linqtoxml201003";

// LINQでクラスオブジェクトに入れる
IEnumerable<Person> persons =
    from n in doc.Elements(ex + "name")
    select new Person()
    {
     ID = n.Attribute("id").Value
     ,
     Name = n.Value
    };


XmlDocumentにして要素をくるくる回して解析してた事を考えると
超楽ちん!うっひょー!