ある開発者曰く

「テストを実施したソースコードが一緒であっても、新たにコンパイルしたファイルはダメだ」

とおっしゃいます。

まず、VisualStudioでは、Webであれば発行先ごとにプロファイルを作成して、

自動的に発行を行ってくれる機能がありますが、これは使えないことになります。

また、ClickOnceでは、テストと本番で設定を変えることがあり、

どうしてもコンパイルしなければならないため、使えません。

自動的にテストやコンパイルを行い、配置までしてくれるCIツールも

この意見では使えないものになってしまいます。

しかし、最初の原則を守ったままCIツールはどうしても使いたい。

コンパイルしたものをGitなどに上げて、

それを配置だけしてしまう、ということも考えられますが、

それではテスト機能というものが丸っ切り意味が無いようにも感じてしまいます。

しかも、この原則、少し困ったことになります。

Debugでコンパイルしたものはどうするのか?という問題です。

「本番前なんだからReleaseでコンパイルしたものを配置するに決まっている!」

などと言われそうですが、DebugとReleaseでテストと本番の挙動を制御している場合、難しいです。

「それを回避できるようにするのが開発者の役目!」とか言い出したら、

もう何のためのDebugとReleaseなんだよと言いたいですが…

どうしたものかなぁ。

(*結局のところ、ソースコードが一緒なら大丈夫!と誰かが大判をついてくれることを待っているようにしか見えないのですが…)

(*CIツール以前に、ClickOnceを使っている時点で、原則を破っていることになりますが)