ソリューションにコンソール プロジェクトがあります。ここで、そのプロジェクトの exe を、Web デプロイを使用してデプロイ後のメイン プロジェクトに追加する必要があります。どうすればそれを達成できますか?よろしく、ゴータム
質問する
1192 次
1 に答える
2
これには、次の 2 つの高レベルのソリューションがあります。
オプション 1: ファイルを App_Data にコピーする
ビルド後のイベントの一部として、または以下のスクリプトの一部として、exe を App_Data フォルダーにコピーできます。それはあなたの選択です。
それができたので、別の問題があります。WPP には、展開時にプロジェクトの一部であるファイルのみが含まれます。これを回避するにWebProjectName.wpp.targets
は、Web アプリケーションのルートに次の内容のファイルを作成します。
<Project>
<PropertyGroup>
<BeforeAddContentPathToSourceManifest>
$(BeforeAddContentPathToSourceManifest);
IncludeExeInDeployment;
</BeforeAddContentPathToSourceManifest>
</PropertyGroup>
<Target Name="IncludeExeInDeployment">
<Copy SourceFiles="$(WebPublishPipelineProjectDirectory)\App_Data\Console\*"
TargetFolder="$(WPPAllFilesInSingleFolder)\App_Data\Console" />
</Target>
</Project>
$(WPPAllFilesInSingleFolder)
(中間ステップをスキップして、exeを元のホームからフォルダーにコピーすることも簡単にできます)
オプション 2: exe を別のプロバイダーとして含める
これには、msdeploy についてもう少し理解する必要がありますが、ターゲット サーバー上の任意の場所に exe をデプロイするオプションが提供されます。
dirPath
基本的には、デプロイメントにプロバイダーを追加する必要があります。再度、ルートに wpp.targets ファイルを追加します。
<Project>
<PropertyGroup>
<AfterAddContentPathToSourceManifest>
$(AfterAddContentPathToSourceManifest);
IncludeConsoleAppInDeployment;
</AfterAddContentPathToSourceManifest>
</PropertyGroup>
<Target Name="IncludeConsoleAppInDeployment">
<ItemGroup>
<MsDeploySourceManifest Include="dirPath">
<Path>full path to console directory</Path>
</MsDeploySourceManifest>
</ItemGroup>
</Target>
</Project>
また、exe が遠端のどこに移動するかを指定するために、pubxml のパスを置き換える必要があります。
<ItemGroup>
<MsDeploySetParameters Include="ConsoleAppPath">
<Kind>ProviderPath</Kind>
<Scope>dirPath</Scope>
<Match>regex that matches console directory</Match>
<Value>Path to console application on remote server</Value>
</MsDeploySetParameters>
</ItemGroup>
于 2012-10-01T00:52:32.667 に答える