0

ClickOnce 経由で配布したい、より大きなソリューションがあります。これは、ソリューションを構成するライブラリとプロセスの小さなサブセクションのみを直接参照する 1 つのメイン シェル実行可能ファイルで構成されます。

このソリューションは、他のいくつかのプロセスといくつかのライブラリ (いくつかのC++ ) で構成されています。ローカル ビルドとTFSサーバー ビルドの両方について、これらすべてのライブラリとプロセスを 1 つの ClickOnce ディストリビューションに含める必要があります。

シェル プロジェクトから他のすべてのライブラリとプロセスを参照することはできません。また、これらのファイルを前提条件として扱われるようにMSIにプッシュしたくありません。これは、ClickOnce を使用して製品を配布/更新する目的を無効にするためです。

必要なすべてのファイル/プロジェクトを単一の ClickOnce ディストリビューションに組み込む正しい方法は何ですか?

4

3 に答える 3

1

IDE は、発行時にネイティブ DLL を依存関係として検出しませんが、SDK ツールを直接実行して、ClickOnce ディストリビューションに手動で含めることができます。ビルド後のスクリプトで mage.exe を使用するか、MageUI.exe を実行してパッケージ生成をガイドするウィザードを使用できます。

推奨読書:

于 2013-05-23T19:13:20.967 に答える
0

これは、私が同様の状況で行ったことです。私は職場で TFS を使用しているので、用語をソース管理に使用できる (または使用しない) ものに変換してください。

アプリケーションのすべての開発に使用するメインのワークスペースがあり、このワークスペースを元の状態に保ちます。

次に、適切な名前 (例: solution-deploy) で別のワークスペースを作成し、このワークスペースで次のことを行います。

  1. 最新のものを取得し、ソース管理からデプロイ ワークスペースにすべてをマージします
  2. アプリケーションのリリース ビルドをビルドする
  3. 展開プロジェクトのルート (ルートに配置します。そこからアクセスする必要があるため、任意のフォルダーに配置します) 展開プロジェクトのプロジェクト フォルダーを右クリックし、[追加] -> [既存のアイテム] を選択します。
  4. ファイル セレクターで展開パッケージに追加するアセンブリのリリース ディレクトリを参照して選択し、[追加] ボタンの横にある矢印を使用して [リンクとして追加] にドロップダウンし、すべてのアセンブリに対してこれを行います。追加したいアセンブリを配置し、展開内で整理したい場所に配置します
  5. ソリューション エクスプローラーで、追加したアセンブリを選択し、[プロパティ] ウィンドウでビルド アクションを「コンテンツ」に設定します。これですべての作業が完了しますが、他のユーザーは「出力ディレクトリにコピー」を「常にコピー」に設定する必要がありました。 "、私はそれをしません
  6. リリース ビルドを実行する
  7. 展開プロジェクトの [プロパティ] ビューに移動します
  8. [発行] タブに移動し、[アプリケーション ファイル] ボタンをクリックします。
  9. ファイルがすべて利用可能になり、展開に追加されるはずです
  10. 必要に応じて ClickOnce 設定を設定します
  11. ClickOnce パッケージを発行する

発行されたパッケージには、現在必要なすべてのアセンブリが含まれている必要があります。

個別の展開ワークスペースをこのように設定したままにし、決してチェックインしないでください。開発ワークスペースで作業を行ってください。新しいデプロイが必要なときはいつでも、デプロイ ワークスペースでソリューションを開き、最新のコードを取得してビルドし、公開します。

于 2013-06-14T20:46:59.060 に答える
0

この種の状況では、Visual Studio に代わるものがあります。Mageを使ってみることもできますが、少し使いにくいかもしれません。私の会社では、ClickOnceMore という代替案を作成しました。

ClickOnceMoreは、Visual Studio を使用して ClickOnce ビルドを実行したくない、または使用できない場合に使用する ClickOnce ビルド ツールです。

UI にはファイルを含めるための特定のページがあり (単一のファイルからディレクトリ ツリー全体まで、あらゆるものを含めるためのルールを使用)、必要なことを正確に行うことができます。

于 2013-05-23T20:23:05.797 に答える