質問

他のすべての.netアプリでは、ビルドプロセス(nantタスクとカスタムタスクの混合)は、msbuildを呼び出す前に[AssemblyVersionAttribute] AssemblyInfo.csを現在のビルド番号で自動的に更新し、ビルド番号をバージョン番号。

現在、最初のBizTalkプロジェクトに取り組んでおり、BizTalkアセンブリのバージョン番号を使用して同じことを行いたいのですが、問題が発生しました!

最初にaseemblyのバージョン番号はbtprojファイルに保存されているので、グーグルで調べて、私の問題の答えのように見えるwww.codeplex.com/biztalkを見つけましたが、もっと深い問題があります!

スキーマ用のプロジェクトとパイプライン用のプロジェクトがあります。フラットファイルディスアセンブラーがあるため、パイプラインプロジェクトはスキーマプロジェクトを参照します。 Visual Studio内からバージョン番号を更新しても、パイプラインコンポーネントのスキーマへの参照は更新されないため、バージョン番号を更新すると問題が発生します。

VS IDEですべてのバージョン番号を1.0.0.0から1.1.0.0に手動で更新すると、パイプラインコンポーネントのフラットファイルdis / assemblersが古い1.0.0.0バージョンのスキーマを引き続き参照しているため、ビルドは失敗します!自動的には更新されません!

これは本当に、プロパティページのBizTalkプロジェクトのバージョン番号を更新し、プロジェクトを構築し、それらを参照するすべてのパイプラインコンポーネントのプロパティでそれらへの参照を手動で更新する手動プロセスですか?

これは、ビルドプロセスでバージョン番号のビルド番号部分を制御できないことを意味します!

または、BizTalkアセンブリのバージョン番号を管理するより良い方法はありますか?

役に立ちましたか?

解決

あなたを失望させて申し訳ありませんが、私はあきらめなければならなかったいくつかの道を正確に下っていました。私はそれを達成することは可能だと思いますが、バインディングファイルと他のXMLファイルの両方に多くの変更が必要になると思います(あなたが言及したように、サービスを公開している場合など)

これらの必要なすべての変更をビルドステップ(MSBuildステップまたは他のビルドフレームワークの同様のもの)でラップすることが可能かもしれません-それは 有用!

他のヒント

開発者-:)

同様の問題があり、すべてのプロジェクト、つまり* .csproj(asssemblyinfo.cs)、*。btprojのバージョン番号を変更する小さなユーティリティを開発することになりました。これとは別に、新しいバージョンのスキーマで* .btpファイルを開いて変更します。簡単に言えば、VS.netツールメニューでこのユーティリティを構成して実行するだけです。

.net lanagaugeでこのようなユーティリティを開発することはそれほど難しくないと思います。

注意:更新後、元のファイルと同じエンコーディングでファイルを保存することを忘れないでください。

乾杯!

中傷、そうかもしれないと思った。バージョン番号を変更するときに参照を更新すると、おそらくBizTalk 2009プロジェクトがより適切に再生されるでしょう。

私は手作業でそれを手動で自動化し始め、何をする必要があるかを認識したとき、それを機能させるために修正する必要がある場所がいくつあるかを理解したとき、私は一歩一歩後退しました。チェックアウトを元に戻してくれてありがとう。

プロジェクトに含まれる標準C#クラスライブラリ(さまざまなヘルパー関数)があり、ビルドプロセス中にバージョン番号を更新できるため、基本的にその1つのアセンブリを使用してアプリケーション全体をバージョン管理しています。どのバージョンがどの環境にあるかを知りたい場合は、その1つのアセンブリのバージョン番号を確認してください。

理想的ではありませんが、機能しています。

プロジェクトでこれを正常に完了しました-ツールの開発者に詳細を投稿してもらうことができるかどうかを確認します...

この問題は、ファイル参照(ここではスキーマ)として依存コンポーネントの最新バージョンへの統合ビルドを実行するときに発生します。

assemblyversionのアップグレードは、常に手動で実行する必要があることに注意してください。そうすることで、常にassemblyversionsの変更を管理できます。

ビルドブレークの問題を解決する可能な解決策は、最新バージョンではなく、依存コンポーネントビルドの特定バージョンへの参照をファイルし、サブドライブとコピースクリプトを使用して最新コンポーネントビルドを取得することです。

例:

SchemaA、アセンブリバージョン1.0.0.0 PipelineA(たとえばpipelinecomponent XMLValidatorを使用)、アセンブリバージョン1.0.0.0

PipelineAには、substドライブ(ワークスペースD:\ MyComponentsにマップするRドライブなど)へのファイル参照と、SchemaAのバージョン1.0.0.0が次のようにあります。

R:\ SchemaA \ 1.0.0.0 \ SchemaA.dll。

コピースクリプトは、SchemaAのビルド出力をRドライブにローカルにコピーします。

スキーマAをバージョン1.1.0.0に更新する場合、バージョン1.0.0.0を引き続き使用し、スキーマの1.1.0.0バージョンを使用する選択肢があるため、問題はありません。アップグレードする場合は、コピースクリプトを変更し、R:\ SchemaA \ 1.1.0.0 \ SchemaA.dllへのファイル参照を置き換える必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top