2

まず、この質問を読んでコメントしていただきありがとうございます。

概要

MSBuild を使用して、MS Visual Studio の Windows サービスと Windows アプリケーションを単純な (dll、exe、config などを含むファイルのディレクトリ) に自動的にパッケージ化して、Dev-Ops 部門にリリースする方法を教えてください。MSI インストーラー、setup.exe、または MS Visual Studio のパブリッシュのデフォルトと思われる Web 展開形式での配布は必要ありません。

私の環境

  • Windows XP SP3 (32 ビット)、ウィンドウ サーバー 2008 R2 (64 ビット)
  • .NET 4.0 (32 ビット)
  • MS Visual Studio 2010 (32 ビット)
  • NAnt 0.91 (32 ビット)

私のシナリオ

現在、約 5 種類の MS Visual Studio プロジェクトがあり、最初の 3 種類 (Web サービス、Web アプリケーション、Web サイト) については、MSBuild を使用して、コンテンツに基づいてソースをファイル (配布) の単純なディレクトリにパッケージ化できます。以下を使用した csproj ファイルの

msbuild my.component.csproj /p:Configuration=リリース /t:パッケージ /p:_PackageTempDir="C:\temp\some\dir"

後者の 2 つのタイプ (Windows サービス、Windows アプリケーション) については、上記のように MSBuild を使用できません。Visual Studio の Publish コマンドを使用して調査したところ、Windows サービスと Windows アプリケーションの両方の setup.exe インストーラーを作成できるようですが、これは私が望んでいるものではありません。単純なファイルのディレクトリを作成できるようにしたいだけです (ディストリビューション) 他のプロジェクト タイプで行ってきたように。これが不可能かもしれないことは承知していますが、確実に知りたいだけです。

結論

これまでのところ、Windows サービスと Windows アプリケーションの両方について、次の結論に達しました。前者の 2 つは理想的ではありません。

  • MSBuild を使用してコードをコンパイルし、NAnt を使用してファイルの単純なディレクトリ (配布) を作成します。
  • MSBuild を使用してコードをコンパイルし、ビルド後のイベントを作成してディストリビューションを作成します。
  • ここにあなたの提案があります(大歓迎です)。
4

3 に答える 3

0

MSBuildを実行して、必要なものを取得できます。必要なのは、とは異なるターゲットを指定することだけですPackage。私はあなたが`ビルド'を望んでいると信じています:

msbuild my.component.csproj /p:Configuration=Release /t:Build 

プロパティを介してビルド出力ディレクトリをカスタマイズできますが、そのプロパティ名が何であるかを頭の中で思い出せません。csprojファイルをクラックして開くと、それを見ることができるはずです。

于 2012-09-05T13:54:07.237 に答える
0

私のオンライン調査(MSDN)に基づくと、StackOverflowと限られたローカル実験では、WindowsサービスとWindowsアプリケーションの両方を、MSBuildのパッケージコマンドの配布出力と同様の方法ですばやく簡単に構築することはできないようです。ローカルファイルベースの配布。

Windowsアプリケーションの場合、Splattered Bitsが示唆しているように、プロジェクトがコンパイルされた後、リリースbinディレクトリの内容を単純なファイルベースの配布として使用できます。

Windowsサービスの場合、上記のWindowsアプリケーションで行ったことを実行し、リリースbinディレクトリからの出力を使用することができます。

どちらの場合も、PDBファイルの作成を抑制したり、コンパイル出力をさらに構成したりするために、CSPROJファイルへの変更が必要になる場合があります。

于 2012-09-13T11:06:50.660 に答える
0

まず、.Net マネージド Windows サービスは、アンマネージド サービスと同様に、InstallUtil というコマンド ライン ツールを使用して Windows サービス コントローラーに登録する必要があります。このユーティリティには、さまざまな .Net Framework バージョン用のさまざまなバージョンがあります。それらは、.Net フレームワークがインストールされる場所にあります。たとえば、私の開発ボックスでは、C:\Windows\Microsoft.NET\Framework の個々のフレームワーク サブフォルダーの下にあります。

2 番目に、Windows アプリケーションのディストリビューションで発生している具体的な問題を明確にすることができます。これらは通常、Web サイトや Web サービスと同様に、単純なファイル配布と同じくらい簡単に実行できます。

于 2012-09-04T14:55:40.940 に答える