0

ソリューションにコンソール プロジェクトがあります。ここで、そのプロジェクトの exe を、Web デプロイを使用してデプロイ後のメイン プロジェクトに追加する必要があります。どうすればそれを達成できますか?よろしく、ゴータム

4

1 に答える 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 に答える