1

最初に、私の英語についてお詫びしたいと思います。それは私の母国語ではありません! 私は TFS ビルド (2010) のすばらしい世界では全くの無知で、問題を抱えています。簡単な例を使って説明しようと思います (しかし、私の実際の状況はもっと複雑です)。

コンソール アプリケーション "MyApp1" を含むプロジェクトがあり、コンピューター上のその場所は "D:\MyProjets\MyApp1" です。emailTemplate.html という名前のファイルを含む、リソースのみを含む別のプロジェクト「Res」があります。

私のプロジェクト「MyApp1」はこのファイルを使用します。したがって、「App.config」ファイルには、このリソースのパスを格納するキーがあります:「D:\MyProjets\Res\emailTemplate.html」

最後に、そのアプリケーション「MyApp1」のテストがあります。このテストでは、電子メールが送信されたかどうかを確認します。電子メール「MyApp1」を送信するには、ファイル「emailTemplate.html」が必要であり、構成ファイル内のキーを使用して検索します。

コンピューターでテストを実行すると、すべて問題ありません。

しかし、TFS ビルドを使用してソリューションをビルドすると、テストの実行時にこのリソースに問題が発生します。ビルド中に、ソース ファイルがディレクトリにコピーされます (たとえば、「D:\Build\1\My build projet\Sources\MyProjets\Res」など)。したがって、「MyApp1」は「D」で「emailTemplate.html」を検索します。 :\MyProjets\Res\emailTemplate.html" (構成ファイル) であり、もちろん見つけることはできません。

どうすればいいですか?

私のプロジェクトがこのようにリソースを扱うべきではないことはすでに知っていますが、それを変更することはほとんど不可能です.

BuildProcessTemplate を変更して、ビルド サーバーが Res プロジェクトの必要な場所で getLatest を実行するように強制することを考えました。しかし、それが良いアイデアなのか、それとも可能なのかさえわかりません...

助けてくれてありがとう!:)

4

1 に答える 1

1

ビルド定義を編集して、ワークスペースにも "Res" プロジェクト ディレクトリを含めます。ビルドごとに自動的にダウンロード/更新される必要があり (デフォルトのプロセス テンプレートのいずれかを使用している場合)、テストで相対パスを使用している限り問題ありません。

于 2012-10-17T17:31:40.963 に答える