ClickOnce发布过程中的学习
简单普通的发布过程网上可以搜到一大把,但是针对复杂项目的发布需要进一步加入一些东西。
目前要发布在公司局域网,先在IIS上新建一个网站配置好物理路径D:\piis\, IP 192.***.**.12 端口 8016。发布其他选项跟“在IIS上发布”一样设置,“选项”设置中配置如下图:
先发布版本1,在D:\piis\中找到发布的版本1中的exe、dll文件复制下来。
然后,在C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\Bootstrapper\Packages路径下新建一个文件夹(64位,VS2013),这个文件夹直接相关你将要发布的项目,名字尽量类似。在这个文件夹中的内容可以从Packages目录下找一个完整项目将内里的文件都copy过来,然后将之前发布好的要求复制的exe、dll文件存入这个文件夹。接下来是修改最重要的product.xml文件,下面放出我修改的文件:
<?xml version="1.0" encoding="utf-8" ?> <Product xmlns="http://schemas.microsoft.com/developer/2004/01/bootstrapper" ProductCode="**.Installer.8.02.001" > <RelatedProducts> <DependsOnProduct Code=".NETFramework,Version=v4.0" /> <DependsOnProduct Code="Microsoft.Windows.Installer.4.5" /> </RelatedProducts> <!-- Defines list of files to be copied on build --> <PackageFiles CopyAllPackageFiles="true"> <PackageFile Name="**3104.exe"/> <PackageFile Name="Language\2052.xaml"/> <PackageFile Name="Common**.dll"/> <PackageFile Name="111.dll"/> <PackageFile Name="**.dll"/> </PackageFiles> <Commands Reboot="Immediate"> <Command PackageFile="**3104.exe" EstimatedInstallSeconds="0"> <ExitCodes> <ExitCode Value="0" Result="Success"/> <ExitCode Value="1641" Result="SuccessReboot"/> <ExitCode Value="3010" Result="SuccessReboot"/> <DefaultExitCode Result="Fail" FormatMessageFromSystem="true" String="GeneralFailure" /> </ExitCodes> </Command> </Commands> </Product>
其中PackageFile的内容就是安装后需要下载的文件。然后再打开zh-Hans文件夹中的package.xml文件,修改其中的DisplayName项为***,完成之后在vs项目中的系统必备选项中就可以勾选“***”项,再发布一次获得的setup.exe文件可以在公司局域网内的任一电脑上安装下载。
对了,在发布之后最重要的是对setup.exe修改,用cmd命令修改该文件的-url、-componentsurl=你之前设置的iis的ip+端口地址。
ok,该死的系统必备这么简单让我看了半天才知道是自己DIY的。贴出MSDN的解释和发布过程中会出现的常见错误:
MSDN:https://msdn.microsoft.com/zh-cn/library/hh873130.aspx
常见错误:http://blog.csdn.net/flyingdream123/article/details/8080589
必备组件:http://blog.csdn.net/duanzilin/article/details/5982296