我的解决方案中有一个控制台项目。 现在我希望使用Web部署将该项目的exe添加到我的主项目部署之后。 我怎样才能做到这一点? 问候, 高塔姆
答案 0 :(得分:2)
有两种高级解决方案:
您可以将exe作为post build事件的一部分或作为下面脚本的一部分复制到App_Data文件夹中。这是你的选择。
既然它存在,我们还有另一个问题。 WPP仅包括部署时属于项目一部分的文件。要解决此问题,您可以使用以下内容为Web应用程序的根目录创建WebProjectName.wpp.targets
文件:
<Project>
<PropertyGroup>
<BeforeAddContentPathToSourceManifest>
$(BeforeAddContentPathToSourceManifest);
IncludeExeInDeployment;
</BeforeAddContentPathToSourceManifest>
</PropertyGroup>
<Target Name="IncludeExeInDeployment">
<Copy SourceFiles="$(WebPublishPipelineProjectDirectory)\App_Data\Console\*"
TargetFolder="$(WPPAllFilesInSingleFolder)\App_Data\Console" />
</Target>
</Project>
(您可以轻松跳过临时步骤并将exe的原始主页复制到$(WPPAllFilesInSingleFolder)
文件夹中)
这需要对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>
您还需要替换pubxml中的路径以指定exe在远端的位置:
<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>