PlT*_*lor 7 msbuild clickonce teamcity-7.0
我正在使用TeamCity作为持续集成服务器,并使用ClickOnce安装程序部署我的应用程序.我可以让安装程序运行并部署我的应用程序,但如果计算机尚未安装它或如何在ClickOnce部署中启用自动更新检查功能,我无法弄清楚如何包含.net 4.5的安装程序.我目前正在使用下面的MSBuild文件来构建我的安装程序
<Project DefaultTargets="DoPublish" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets"/>
<PropertyGroup>
<Version>$(BUILD_NUMBER)</Version>
<Install>true</Install>
<InstallFrom>Unc</InstallFrom>
<UpdateEnabled>true</UpdateEnabled>
<UpdateMode>Background</UpdateMode>
<ClickOnceBuildDirectory>$(MSBuildProjectDirectory)\MyProject\bin\$(Configuration)\app.publish</ClickOnceBuildDirectory>
<ClickOnceInstallDirectory>$(MSBuildProjectDirectory)\Publish</ClickOnceInstallDirectory>
<ClickOnceFinalLocation>$(env_PublishUrl)</ClickOnceFinalLocation>
</PropertyGroup>
<Target Name="DoPublish">
<RemoveDir Directories="$(ClickOnceInstallDirectory)" ContinueOnError="true" />
<MSBuild Projects="MyProject.sln" Targets="Clean;Build" Properties="ApplicationVersion=$(Version);Configuration=$(Configuration)"/>
<MSBuild Projects="MyProject\MyProject.csproj" Targets="Publish" Properties="ApplicationVersion=$(Version);Configuration=$(Configuration);InstallUrl=$(ClickOnceFinalLocation)" />
<MakeDir Directories="$(ClickOnceInstallDirectory)"/>
<Exec Command="xcopy /E $(ClickOnceBuildDirectory) $(ClickOnceInstallDirectory)" />
</Target>
</Project>
Run Code Online (Sandbox Code Playgroud)
您可以使用引导程序来处理先决条件,例如检查 .NET Framework。查看应用程序部署先决条件MSDN 文章,尤其是有关使用 ClickOnce 和 MSBuild 进行引导的部分。
还有另外 2 篇 MSDN 文章详细介绍了如何安装 ClickOnce 先决条件和创建引导程序包。
至于自动更新,您是否希望将自动更新功能定位在应用程序本身之外,即在安装程序中还是在应用程序中?有多种方法可以在应用程序中允许 ClickOnce 更新,包括通过 ClickOnce 部署 API 自动更新。
有关使用 ClickOnce Bootstrapper 包的简要说明可以在这篇现有的 Stackoverflow 文章中找到。虽然您在这里没有使用 WiX,但您也可以检查此WiX 线程,这很有用,因为您会看到一些在此过程中不起作用的步骤。这些示例显示如何使用GenerateBootstrapper MSBuild 任务为ClickOnce 安装程序创建引导程序。请注意,在上述链接的示例中,GenerateBootstrapper 任务中的“Path”被设置为 Windows SDK 位置下的子文件夹。可以将其更改为其他位置,只要该位置具有必要的必备包即可。
下面是一个示例,其中将 .NET 4.5 Framework 设置为安装的先决条件。.NET 4.5 先决条件的父目录结构由 $(MyPathToPrecessionPackages) 属性指定。
下面示例中的BootstrapperFile项指定 .NET 4.5 Framework 必备包。值“.NETFramework,Version=v4.5”来自Bootstrapper\Packages\DotNetFX45 文件夹中的product.xml 文件,它允许GenerateBootstrapper任务正确识别.NET 4.5 先决条件/引导程序包。“ProductName”值只是对包的友好描述。
<PropertyGroup>
<MyPathToPrerequisitePackages>C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\Bootstrapper</MyPathToPrerequisitePackages>
</PropertyGroup>
<ItemGroup>
<BootstrapperFile Include=".NETFramework,Version=v4.5">
<ProductName>.NET Framework 4.5</ProductName>
</BootstrapperFile>
</ItemGroup>
<GenerateBootstrapper
ApplicationFile="$(MyAppAssembly).application"
ApplicationUrl="$(MyClickOnceAppUrl)"
ApplicationName="$(MyClickOnceAppName)"
BootstrapperItems="@(BootstrapperFile)"
Culture="en"
FallbackCulture="en-US"
CopyComponents="true"
Validate="false"
Path="$(MyPathToPrerequisitePackages)"
SupportUrl="$(MyAppSupportUrl)"
OutputPath="$(MyDesiredOutputPath)\" />
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3298 次 |
最近记录: |