3

追加のコンパイル シンボルを含めるように .csproj ファイルを変更して、.sln から 2 つの異なる DLL ファイルのセットを生成します。私は rake を使用してソリューションをビルドしており、次のビルド タスクがあります。

#==========================================================
desc "Builds the DPSF.sln in Release mode."
msbuild :Build do |msb|
    puts 'Building the DPSF solution...'
    msb.properties :configuration => :Release
    msb.targets [:Clean, :Rebuild]
    msb.solution = DPSF_SOLUTION_FILE_PATH
    msb.parameters "/nologo", "/maxcpucount", "/fileLogger", "/noconsolelogger"
    msb.verbosity = "quiet" # Use "diagnostic" instead of "quiet" for troubleshooting build problems.

    # Delete the build log file if the build was successful (otherwise the script will puke before this point).
    File.delete('msbuild.log')
end

次に、次を使用して両方の DLL ファイルのセットを生成しようとします。

desc "Builds new regular and AsDrawableGameComponent DLLs."
task :BuildNewDLLs => [:DeleteExistingDLLs, :Build, :UpdateCsprojFilesToBuildAsDrawableGameComponentDLLs, :Build, :RevertCsprojFilesToBuildRegularDLLs]

ここで :Build を 2 回呼び出していることがわかります。問題は、最初のものだけが実行されることです。:Build ターゲットをコピーして貼り付け、それを :Build2 と呼び、:BuildNewDLLs を :Build2 を呼び出すように 2 回目に変更すると、すべて正常に動作します。では、:BuildNewDLLs ターゲット内から :Build ターゲットを複数回呼び出せるようにするにはどうすればよいでしょうか?

前もって感謝します。

4

2 に答える 2

6

Rake はデフォルトで、各 rake タスクがセッションごとに 1 回だけ実行されるようにします。次のコードを使用して、ビルド タスクを再度有効にすることができます。

::Rake.application['Build'].reenable

これにより、同じセッションで再実行できます。

于 2012-04-30T23:43:56.460 に答える