自動化されたスローチータービルドメソッド
-
12-12-2019 - |
質問
すべてのビルドサーバーにSlow Cheetahをインストールしたくありません。
Config Transformations for Config Transformationsには遅いCheetahを使用しています。複数のapp.configファイルを生成し、必要に応じてそれらを変更します。
複数のサーバーを設定しています。それらのすべてのコードリポジトリがあるため、コマンドラインからコードを引いて、それに応じてパッケージを構築します。これらのコードにはそれらの設定ファイルがあります。しかし、それでもコマンドラインからアプリケーションをコンパイルすると、遅いCheetahがインストールされていない場合、パッケージは変換では生成されません。それ以外の場合はうまく機能します。
新しいサーバーと新しいユーザーを設定するときはわかりませんので、遅いチーターを一つににインストールすることはできません。
申請書に遅いCheetah DLLを使用し、変換方法を手動で呼び出すことができますか?
ありがとう
解決
ステップバイステッププロセスで定義されています
http://sedodream.com/2011/12/12/2011/12/12/slowcheetahxmltransformsFromAciserver.aspx
他のヒント
スローチータの代わりに、プロジェクトファイルを手動で編集してこの機能を処理することができます。それは設置するのはもう少し面倒ですが、それはあなたが必要なDLLが必要ではないということです。
テキストエディタでプロジェクトファイルを開きます。プロジェクトファイルの下部には、閉じるタグの直前に、次のものを含めます。
<UsingTask TaskName="TransformXml" AssemblyFile="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.Tasks.dll" />
<Target Name="AfterCompile" Condition="exists('app.$(Configuration).config')">
<!-- Generate transformed app config in the intermediate directory -->
<TransformXml Source="app.config" Destination="$(IntermediateOutputPath)$(TargetFileName).config" Transform="app.$(Configuration).config" />
<!-- Force build process to use the transformed configuration file from now on. -->
<ItemGroup>
<AppConfigWithTargetPath Remove="app.config" />
<AppConfigWithTargetPath Include="$(IntermediateOutputPath)$(TargetFileName).config">
<TargetPath>$(TargetFileName).config</TargetPath>
</AppConfigWithTargetPath>
</ItemGroup>
</Target>
.
その後、プロジェクトファイルに行を見つけて、次のように置き換えます。
<ItemGroup>
<Content Include="App.config" />
<Content Include="App.Debug.config">
<DependentUpon>App.config</DependentUpon>
</Content>
<Content Include="App.Release.config">
<DependentUpon>App.config</DependentUpon>
</Content>
</ItemGroup>
.
追加のコンテンツを追加する必要があります。追加する各構成に追加する必要があります。
その後、プロジェクトディレクトリにファイルを作成した場合は、実行する準備が整いました。それはスローチーターのように滑らかではありませんが、あなたのコードポータブルを保持しています。
SlowCheetah(2.5.14)の最新バージョンは、 nuget で入手できます。NUGETを介して追加する場合は、ローカルソリューションディレクトリ(すべてのNUGETパッケージと同じ)のpackages
フォルダに保存されています。
解を築くサーバーにインストールされていることを避けるために、以下のようなアプリケーションにスローチーターを含めます。
- 私の解決策の根本は、(とりわけ)スローチーターを含むフォルダツールを持っています
- MyProject / Tools / SlowCheetah / SlowCheetah.Tasks.dll
- MyProject / Tools / SlowCheetah / SlowCheetah.Transforms.targets
- (Web - )アプリケーションプロジェクトの.csprojファイルでは、これがあります。
.<PropertyGroup> <SlowCheetahTargets Condition=" '$(SlowCheetahTargets)'=='' ">$(MSBuildProjectDirectory)\..\Tools\SlowCheetah\SlowCheetah.Transforms.targets </SlowCheetahTargets> </PropertyGroup>
とこれ:
.<Import Project="$(SlowCheetahTargets)" Condition="Exists('$(SlowCheetahTargets)')" />
..そしてチームシティからの建物/出版があっても、それは非常に大丈夫であるようです。
編集:
SlowCheetahをVisual Studioにインストールしたときに、
%localappdata%\Microsoft\MSBuild\SlowCheetah\v1
(drive:\Users\yourusername\AppData\Local\Microsoft\MSBuild\SlowCheetah\v1
)に記載されている2つのファイルがあります。