Dan*_*ley 7 .net msbuild clickonce msdeploy webdeploy
是否可以构建包含可以使用标准webdeploy工具部署到Web服务器的clickonce应用程序的Web部署包?
这将是理想的过程:
这背后的原因是我们可以构建整个解决方案,包括Web包,运行所有测试,然后只在测试通过后部署.
我目前正在考虑对临时文件夹进行基于文件的部署,将其复制到Web项目中,然后打包Web项目.有更整洁的解决方案吗?
我在http://sedodream.com/2012/02/18/HowToCreateAWebDeployPackageWhenPublishingAClickOnceProject.aspx上创建了一个博客,其中有更多细节,但相关部分如下
如果您有一个要创建ClickOnce包的客户端项目,则可以尝试以下操作.
编辑客户端项目的项目文件,并在底部(</Project>标记正上方)添加以下内容.
<PropertyGroup>
<!--Unless specified otherwise, the tools will go to HKLM\SOFTWARE\Microsoft\IIS Extensions\MSDeploy\1 to get the installpath for msdeploy.exe.-->
<MSDeployPath Condition="'$(MSDeployPath)'==''">$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\IIS Extensions\MSDeploy\3@InstallPath)</MSDeployPath>
<MSDeployPath Condition="'$(MSDeployPath)'==''">$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\IIS Extensions\MSDeploy\2@InstallPath)</MSDeployPath>
<MSDeployPath Condition="'$(MSDeployPath)'==''">$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\IIS Extensions\MSDeploy\1@InstallPath)</MSDeployPath>
<MSDeployExe Condition=" '$(MSDeployExe)'=='' ">$(MSDeployPath)msdeploy.exe</MSDeployExe>
</PropertyGroup>
<Target Name="CreateWebDeployPackage" AfterTargets="Publish" DependsOnTargets="Publish">
<!--
%msdeploy%
-verb:sync
-source:contentPath="C:\Temp\_NET\WebPackageWithClickOnce\WebPackageWithClickOnce\bin\Debug\app.publish"
-dest:package="C:\Temp\_NET\WebPackageWithClickOnce\WebPackageWithClickOnce\bin\Debug\co-pkg.zip"
-->
<PropertyGroup>
<Cmd>"$(MSDeployExe)" -verb:sync -source:contentPath="$(MSBuildProjectDirectory)\$(PublishDir)" -dest:package="$(OutDir)cotest.zip"</Cmd>
</PropertyGroup>
<Message Text="Creating web deploy package with command: $(Cmd)" />
<Exec Command="$(Cmd)" />
</Target>
Run Code Online (Sandbox Code Playgroud)
在PropertyGroup我是:
之后定义了CreateWebDeployPackage,它将在PublishOnly目标之后执行(因为AfterTargets ="PublishOnly").该目标将调用msdeploy.exe在输出目录中创建包.您应该能够像任何其他包一样获取该包并发布它.
你可以尝试一下,让我知道它是否适合你?
| 归档时间: |
|
| 查看次数: |
3167 次 |
| 最近记录: |