5

ClickOnce 配置を使用する Outlook アドインがあります。

開発者がビルドをチェックインすると、PC はビルドをキューに入れ、アプリケーションは共有ドライブ上の場所に公開されます。

問題は、ビルドが公開バージョンを現在のアセンブリ バージョンに変更しないため、以前のバージョンのフォルダーに公開され、その結果、バージョンをインストールできないというインストーラーが破損することです。

私はその記事を読みました。そして、[アセンブリ: AssemblyVersion("1.0.*")] をセットアップします。まだ何もありません。

<ApplicationVersion></ApplicationVersion>*.csproj ファイルのをインクリメントすることで、この問題を回避する方法を見つけました。でも自動化してほしい。

もう 1 つの回避策は、msbuild.exe を実行するときでした。

/target:publish   /property:PublishDir="\\sharedDir\\" /property:GenerateManifests=true
/property:ApplicationVersion=1.0.0.123

それでも自動化されていません。<ApplicationVersion></ApplicationVersion>現在のビルド番号を msbuild.exe に渡すか、ビルドごとに値を実際のビルド番号に置き換えたいと思います。それとも別の方法がありますか?

4

2 に答える 2

6

私はここにたどり着いたのと同じ問題に直面していました。ご質問のコードをベースに解決できました。TFS を使用して解決する手順は次のとおりです。

ビルド テンプレートを開き、ワークフローの下部にある [引数] タブを開きます。MSBuildArguments を見つけて、既定値を変更します。以下は私が最終的に得たものです:

// Note: You can use /p for /property and /t for /target

"/t:Publish /p:PublishDir=<PublishDirectory> /p:ApplicationVersion="
    + Date.Today.ToString("yyyy") + "."
    + Date.Today.ToString("MMdd") + "."
    + Date.Now.Hour.ToString() + "."
    + Date.Now.Minute.ToString()

もちろん、新しいビルド ファイルを保存してチェックインする必要があります。ビルド定義で新しい値を使用するのに問題があったため、新しいビルド定義を作成しました。

これにより、次のような新しいアプリケーション フォルダーが作成されます。

<ApplicationName>_2013_0315_09_55

これは古い投稿に対する新しい回答であることはわかっているので、別の解決策を見つけたと思いますが、TFS で ClickOnce 展開を使用したい他の人に役立つことを願っています。

于 2013-03-15T13:57:39.753 に答える
0

Hudsonをビルドサーバーとして使用し、 MSBuildを使用してビルドを実行します。ハドソンは、ビルド番号を使用して環境変数を設定します。次に、その環境変数をコマンドライン引数として、ファイルを解析しassemlyinfo.cs、アセンブリバージョン、ファイルバージョン、およびアセンブリ情報バージョンを更新するプログラムに渡します。

別のアプローチは、実行可能ファイルの代わりにこれを行うカスタムタスクを作成することです(インラインタスクをサポートするようになったため、さらに簡単になりました)。以前のバージョンのTFSは、環境変数を設定する場合と同様のことを行いましたが、TFS2010で変更された可能性があります。

これがあなたを助けるかもしれないリソースです:

また、Mageコマンドラインを使用してClickOnceアプリケーションとデプロイメントマニフェストを作成しています。MageをExecMSBuildプロジェクトのタスクと呼びます。

于 2012-05-08T02:53:04.433 に答える