文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>用Rake编译C#工程

用Rake编译C#工程

时间:2010-09-19  来源:DarthVader

没有什么magic,就是用Rake直接调用MsBuild编译csproj,下面是代码

CSPROJECTS = Rake::FileList["**/*.csproj"]
CONFIG = "Release"
ENV['_Framework'] = 'v3.5'

verbose(true)

def msbuild_all(target)
  msbuild_csprojects(target)
end

def msbuild_csprojects(target)
  CSPROJECTS.map {|x| msbuild(target, x)}
end

def msbuild(target, project, props={})
  platform = ":#{props['Platform']}" if props.key?('Platform')

  task "#{target}#{platform}:#{project}" do
    run_msbuild(target, project, props)
  end
end

def run_msbuild(target, project, props)
  cmd = "#{ENV['WinDir']}/Microsoft.NET/Framework/#{ENV['_Framework']}/msbuild.exe "
  cmd += "/nologo /m /v:m "
  props.each{|k,v| cmd += "/p:#{k}=\"#{v}\" "}
  cmd += "/p:Configuration=#{CONFIG} "
  cmd += "/t:#{target} #{project}"

  prop_desc = props.to_a.map{|x| "#{x[0]} = #{x[1]}"}.join(', ')
  desc = project
  desc += " (#{prop_desc})" if prop_desc.size != 0

  if target == 'clean' then
    puts "Cleaning #{desc}"
  else
    puts "Building #{desc}"
  end
  sh cmd
end

下面是Rakefile的内容:

require 'rake_msbuild'

task :default => :build

desc "build"
task :build => msbuild_all('build')

desc "clean"
task :clean => msbuild_all('clean')

desc 'rebuild'
task :rebuild => [:clean, :build]

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载