MSBuildでプロジェクト発行(昨日の続き)
subversionで更新→AssemblyInfoの更新→Configの更新→ビルド→発行をするMSBuildのスクリプトができた。ちょっときたないスクリプトだけど、MSBuildが大体わかってきた。
設定ファイルの更新は、XmlUpdateを使いましたが、XmlMassUpdate*1も便利そうです。
<?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Run" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Import Project="$(MSBuildExtensionsPath)\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets"/> <!--<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v9.0\WebApplications\Microsoft.WebApplication.targets"/>--> <!--<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />--> <PropertyGroup> <SvnPath>E:/TracLight/subversion/bin</SvnPath> <Major>2</Major> <Minor>0</Minor> <Build>0</Build> <Revision>0</Revision> <OutputFolder>E:/temp/msbuildTest</OutputFolder> </PropertyGroup> <Target Name="Run"> <CallTarget Targets="SvnUpdate"/> <CallTarget Targets="AssemblyInfo"/> <CallTarget Targets="Config"/> <CallTarget Targets="Build"/> <CallTarget Targets="Publish"/> </Target> <Target Name="SvnUpdate"> <SvnUpdate LocalPath="$(MSBuildProjectDirectory)"> <Output TaskParameter="Revision" PropertyName="Revision" /> </SvnUpdate> </Target> <Target Name="AssemblyInfo"> <Message Text="Version: $(Major).$(Minor).$(Build).$(Revision)"/> <AssemblyInfo CodeLanguage="CS" OutputFile="./MSBuildTest/Properties/AssemblyInfo.cs" AssemblyTitle="MSBuild Community Tasks" AssemblyDescription="Collection MSBuild Tasks" AssemblyCompany="http://example.org" AssemblyProduct="MSBuild.Community.Tasks" AssemblyCopyright="Copyright" ComVisible="false" CLSCompliant="true" Guid="Guid" AssemblyVersion="$(Major).$(Minor).$(Build).$(Revision)" AssemblyFileVersion="$(Major).$(Minor).$(Build).$(Revision)" Condition="$(Revision) != '0' "/> </Target> <Target Name="Config"> <XmlUpdate XmlFileName="./MSBuildTest/ServiceReferences.ClientConfig" Xpath="//configuration/system.serviceModel/client/endpoint/@address" Value="localhost"/> <XmlUpdate XmlFileName="./MSBuildTest/ServiceReferences.ClientConfig" Xpath="//configuration/appSettings/add[@key='HogeHoge']/@value" Value="aaabbbccc"/> </Target> <Target Name="Build"> <MSBuild Projects="./MSBuildTest.sln" Properties="Configuration=Release;"/> </Target> <Target Name="Publish"> <RemoveDir Directories="$(OutputFolder)" ContinueOnError="true" /> <MSBuild Projects="./MSBuildTest.Web/MSBuildTest.Web.csproj" Targets="ResolveReferences;_CopyWebApplication" Properties="Configuration=Release; WebProjectOutputDir=$(OutputFolder); OutDir=$(OutputFolder)/"/> </Target> </Project>
MSBuildでASP.NETのプロジェクトを発行
MSBuildを勉強中。学習した内容をメモします。
ASP.NETプロジェクトのMSBuildでの発行は、↓でいけそう。
<?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Run" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <!--<Import Project="$(MSBuildExtensionsPath)\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets"/>--> <!--<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v9.0\WebApplications\Microsoft.WebApplication.targets"/>--> <!--<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />--> <PropertyGroup> <OutputFolder>E:/temp/msbuildTest</OutputFolder> </PropertyGroup> <Target Name="Run"> <CallTarget Targets="Build"/> <CallTarget Targets="Publish"/> </Target> <Target Name="Build"> <MSBuild Projects="./MSBuildTest.sln" Properties="Configuration=Release;"/> </Target> <Target Name="Publish"> <RemoveDir Directories="$(OutputFolder)" ContinueOnError="true" /> <MSBuild Projects="./MSBuildTest.Web/MSBuildTest.Web.csproj" Targets="ResolveReferences;_CopyWebApplication" Properties="Configuration=Release; WebProjectOutputDir=$(OutputFolder); OutDir=$(OutputFolder)/"/> </Target> </Project>
ここまででもけっこう手間取った。
後は、subversionから最新版とってきてconfigとか修正してなどのタスクを入れていきたい。
参考
http://codingcockerel.co.uk/?p=15
http://blog.m.jedynak.pl/2008/03/publishing-web-application-with-msbuild.html
http://codingcockerel.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=12739#DownloadId=34821
エンジン01 オープンカレッジ in 高知に行ってきた。
先週末は、エンジン01 オープンカレッジ in 高知に行ってきた。
http://www.enjin01.org/index2.html
茂木健一郎さんや勝間和代さん、布袋寅泰さんなど、著名な文化人が大勢きており、僕はほとんどフル活動でいろんな講義に参加してきました。
最後のオオトリのミュージカルでは、観客総立ちのスタンディングオベーションでとても感動的なフィナーレでした。
では、僕が受けた数々の講義で、心に残ったところをざっと以下に。
- みんな自己紹介がうまい
まぁ自己紹介なんて必要ない人達ばかりだったのですが、例えばマーケティングコンサルタントの西川りゅうじんさんは、苗字が西川なので西川きよしさんを連想させ、吉本興業の人かとよく間違えられるなんて話から笑いを誘ってた。自分の名前を印象付けられるし、うまい自己紹介だと思った。
女性は子供を生むと、なかなか長時間労働ができない。なので、企業は長時間働ける男性を採用する。僕は残業が男女共同参画の問題になるという視点はまったくもってなかったので、目から鱗の話だった。残業しないぞ!:-)
- 5%ダイエット
会社のみんなで自分の体重を5%減らすという話。減らせなかった人は100g毎に1万円をかけたとのこと。これで何がよかったかというと、これまで仕事の話しかしなかったのが、ダイエットの話もしだして会社でのコミュニケーションにつながったということ。そして、最後には大リバウンド大会と称して飲み食いのおつかれさん会をやったそう。大リバウンド大会という名前が秀逸:-)
- 三毒追放
妬まない、怒らない、愚痴らないの三つの毒を追放すると良いよという話。成功者を妬むんじゃなくて、どうしてその人が成功したのか、妬むのに労力をかける前に研究に労力をかけろ。勝間和代さんの著書でも読んだけど、忘れてた・・・
- Up or Out
どっかの外資では3年間(確か)で役職が上がらない人は首らしい。なので3年に半数は止めるって言ってた。厳しいところだ。
久しぶりにBlogを書いて疲れた。
しかし、最近思うのはこうやって感じたことを少しでも文字にしないと、ダメだなということ。
僕は面倒くさがりだから、自分の思ったことや気持ちを書くということはほとんどしなかった。
だから思いや感情を伝えるのがとても下手(笑
書くってことは自分が感じたことを外に出す訓練になるから、これからはできるだけ書いていこうかな。
Trac Lightningのpost-commitでエラー
Trac Lightningの2.0.7を2.2.5に上書きインストールしたところ、コミット時に以下のエラーがでるようになってしまいました。
コミットに失敗しました (詳しい理由は以下のとおりです): MERGE (URL: '/svn/SampleProject/trunk/test2/WindowsApplication2/WindowsApplication2'): 200 OK (http://localhost)
どうやら、このエラーはpost-commitに失敗したときにでるようです。
そこで、post-commitで実行しているシェルスクリプトの標準エラーをリダイレクトしてやると、以下のエラーが出力されていました。
Traceback (most recent call last): File "E:\TracLight/python-lib/trac/contrib/trac-post-commit-hook", line 209, inCommitHook() File "E:\TracLight/python-lib/trac/contrib/trac-post-commit-hook", line 144, in __init__ repos = self.env.get_repository() File "e:\traclight\python\lib\site-packages\Trac-0.11.4.ja1-py2.5.egg\trac\env.py", line 287, in get_repository return RepositoryManager(self).get_repository(authname) File "e:\traclight\python\lib\site-packages\Trac-0.11.4.ja1-py2.5.egg\trac\versioncontrol\api.py", line 142, in get_repository error=to_unicode(connector.error))) trac.core.TracError: Unsupported version control system "svn": "DLL load failed: 指定されたプロシージャが見つかりません。"
うーん、なにがダメなんだろ・・・
いったん、アンインストールして新規で2.2.5をインストールしてみようかしら。
ってことで、とりあえずメモ。
久しぶりのblogでした。
このフレームワークがすごそう
Visaul WebGui
http://www.visualwebgui.com/silverlight/tabid/382/Default.aspx
時間ができたらちょっと調べてみたい。
アジャイルマインド交流会
高知で行われたアジャイルマインド交流会に行ってきました。
http://www.agileprocess.jp/modules/eguide/event.php?eid=21
とても勉強になり、楽しかったです。
行ってよかったと思いました。
関東方面から12、3名ほど色々な企業の人がいらっしゃっていましたが、皆さん沢田マンションを見学するために、わざわざ高知に来ており、その実践力・行動力はすごいというか、なんというか、私も見習おうと思いました。
アジャイルプロセス協議会の会長である羽生田さんの講演で、特に心に残った3点を私のメモ代わりとして書いておきます。
・中長期計画は意味が無い 世の中はどんどん変化する。例えば10年計画なんて会社を潰そうとしているもの。短期の目標設定が大切。 ・早期に仕様を決定しようとすると、要求仕様がふくらむ ソフトウェアの機能の45%は使われない機能らしい。 そういう意味では短期のイテレーションで段階的に物作りを行うアジャイルはソフトウェア開発にぴったり。 ・ソフトウェアエンジニアはプロジェクトやワークショップでのファシリテータのスキルが重要になる チーム・人を重視しているプロセスなので、こういったスキルが重要になる。
羽生田さん、アジャイルプロセス協議会のみなさん、ありがとうございました。