在Visual Studio,可以生成命令行中的项目,即使它们在集成的开发环境 (IDE) 中创建。 事实上,您可以重新生成与创建的项目Visual Studio仅有的另一台计算机上.NET Framework安装。 这允许你在重现生成使用自动化的过程,例如,在中心生成实验室或使用高级脚本编写技术生成项目本身的范围之外。
使用 MSBuild 重新生成 ClickOnce 应用程序部署
当您调用 msbuild /target:publish 在命令行时,它指示 MSBuild 系统生成项目,并创建ClickOnce应用程序 publish 文件夹中。 这相当于选择发布命令在 IDE 中。
此命令执行 msbuild.exe,并在 Visual Studio 命令提示符环境路径。
"目标"是一个指示符,MSBuild 如何处理命令。 主要目标是"生成"目标和"发布"目标。 生成目标相当于选择生成命令 (或按 f5 键) 在 IDE 中。 如果只想要生成你的项目,可以实现此目的通过键入msbuild
。 此命令有效,因为生成目标是生成的所有项目的默认目标Visual Studio。 这意味着您不显式需要指定 build 目标。 因此,键入msbuild
是相同的操作键入msbuild /target:build
。
/target:publish
命令告知 MSBuild 调用发布目标。 发布目标取决于生成目标。 这意味着发布操作是生成操作的超集。 例如,如果对一个 Visual Basic 或 C# 源代码文件进行了更改,相应的程序集将自动重新生成由发布操作。
有关生成完整的信息ClickOnce使用 Mage.exe 命令行工具创建的部署你ClickOnce清单,请参阅演练:手动部署 ClickOnce 应用程序。
创建和生成基本的 ClickOnce 应用程序使用 MSBuild
若要创建和发布一个 ClickOnce 项目
单击新的项目从文件菜单。 此时将出现“新建项目” 对话框。
选择Windows 应用程序并将其命名
CmdLineDemo
。从构建菜单上,单击发布命令。
此步骤可确保该项目是否已正确配置以生成ClickOnce应用程序部署。
出现“发布向导”。
在发布向导中,单击完成。
Visual Studio 生成并显示名为 Publish.htm 的默认 Web 页。
保存你的项目,并记下在其中存储的文件夹位置。
上述步骤创建ClickOnce首次发布的项目。 现在可以再现在 IDE 之外生成。
若要从命令行生成重现
退出 Visual Studio。
从 Windows启动菜单上,单击所有程序,然后Microsoft Visual Studio,然后Visual Studio Tools,则Visual Studio 命令提示符。 此时会在当前用户的根文件夹中打开命令提示符。
在中Visual Studio 命令提示符,将当前目录更改为只生成上面的项目的位置。 例如,键入
chdir My DocumentsVisual StudioProjectsCmdLineDemo
。若要删除现有文件中生成"以创建和发布ClickOnce项目中,"类型
rmdir /s publish
。此步骤是可选的但它可确保,新文件所有由生成命令行生成。
键入
msbuild /target:publish
。上述步骤将生成完整ClickOnce的子文件夹中的名为的项目的应用程序部署发布。 CmdLineDemo.application 是ClickOnce部署清单。 文件夹 CmdLineDemo_1.0.0.0 包含 CmdLineDemo.exe CmdLineDemo.exe.manifest,文件ClickOnce应用程序清单。 Setup.exe 是引导程序、 其默认配置安装.NET Framework。 DotNetFX 文件夹中包含的可再发行组件.NET Framework。 这是在 Web 上或者通过 UNC 或 CD/DVD 部署你的应用程序所需的文件的整个集。
发布属性
在上面的过程中发布应用程序,以下属性是通过发布向导插入到项目文件。 这些属性直接影响如何ClickOnce生成应用程序。
在 CmdLineDemo.vbproj / CmdLineDemo.csproj:
复制
<AssemblyOriginatorKeyFile>WindowsApplication3.snk</AssemblyOriginatorKeyFile>
<GenerateManifests>true</GenerateManifests>
<TargetZone>LocalIntranet</TargetZone>
<PublisherName>Microsoft</PublisherName>
<ProductName>CmdLineDemo</ProductName>
<PublishUrl>http://localhost/CmdLineDemo</PublishUrl>
<Install>true</Install>
<ApplicationVersion>1.0.0.*</ApplicationVersion>
<ApplicationRevision>1</ApplicationRevision>
<UpdateEnabled>true</UpdateEnabled>
<UpdateRequired>false</UpdateRequired>
<UpdateMode>Foreground</UpdateMode>
<UpdateInterval>7</UpdateInterval>
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
<UpdateUrlEnabled>false</UpdateUrlEnabled>
<IsWebBootstrapper>true</IsWebBootstrapper>
<BootstrapperEnabled>true</BootstrapperEnabled>
您可以覆盖这些属性在命令行而无需更改项目文件本身。 例如,将生成以下ClickOnce而无需引导程序的应用程序部署:
复制
msbuild /target:publish /property:BootstrapperEnabled=false
发布属性控制在Visual Studio从发布,安全,并且签名的属性页项目设计器. 下面是发布属性以及指示每个应用程序设计器的各种属性页中的设置方式的说明:
AssemblyOriginatorKeyFile
确定用于签名的密钥文件在ClickOnce应用程序清单。 此密钥也可能用于你的程序集分配强名称。 设置此属性签名页项目设计器。以下属性在设置安全页:
启用 ClickOnce 安全设置确定是否ClickOnce在生成清单。 最初创建项目,ClickOnce清单生成默认情况下处于关闭状态。 向导将自动打开上首次发布时此标志。
TargetZone确定要发出到信任级别将ClickOnce应用程序清单。 可能的值为"Internet"、"LocalIntranet"和"自定义"。 Internet 和 LocalIntranet 将导致一个默认权限集来发出到你ClickOnce应用程序清单。 LocalIntranet 是默认值,并基本上是说完全信任。 自定义指定仅基本应用程序清单文件中显式指定的权限是否要在发出到ClickOnce应用程序清单。 应用程序清单文件是完整的清单文件包含只需信任信息定义。 它是隐藏的文件,在上配置权限时,自动添加到你的项目安全页。
以下属性在设置发布页:
PublishUrl
是,应用程序将发布到在 IDE 中的位置。 插入到ClickOnce应用程序清单,如果既没有InstallUrl
或UpdateUrl
指定属性。ApplicationVersion
指定的版本ClickOnce应用程序。 这是四位数字的版本号。 如果最后一位数将"*",则ApplicationRevision
替换为在生成时插入到程序集清单的值。ApplicationRevision
指定的修订。 这是一个整数,它会发布在 IDE 中的每次递增。 请注意,不自动递增的生成在命令行执行。Install
确定应用程序是否已安装应用程序或运行从 Web 应用程序。InstallUrl
(未显示) 是用户将在其中安装的应用程序的位置。 如果指定,此值刻录到 setup.exe 引导程序中,如果IsWebBootstrapper
启用属性。 它也会插入到应用程序清单如果UpdateUrl
未指定。SupportUrl
(未显示) 位置中的链接添加/删除程序已安装应用程序对话框。设置以下属性应用程序更新对话框中,从访问发布页。
UpdateEnabled
指示应用程序是否应检查更新。UpdateMode
指定更新前台或后台更新。UpdateInterval
指定应用程序检查更新的频率。UpdateIntervalUnits
指定是否UpdateInterval
值为小时、 天或周为单位。UpdateUrl
(未显示) 是应用程序将从其接收更新的位置。 如果指定,此值将插入到应用程序清单。设置以下属性发布选项对话框中,从访问发布页。
PublisherName
指定发布服务器上安装或运行该应用程序时显示的提示中显示的名称。 对于已安装的应用程序,它还用于在指定文件夹名称启动菜单。ProductName
指定在安装或运行应用程序时显示的提示中显示的产品的名称。 对于已安装的应用程序,它还用于在指定的快捷方式名称启动菜单。设置以下属性先决条件对话框中,从访问发布页。
BootstrapperEnabled
确定是否生成 setup.exe 引导程序。IsWebBootstrapper
确定通过 Web 或基于磁盘的模式下,setup.exe 引导程序是否正常工作。
InstallURL、 SupportUrl、 PublishURL,和 UpdateURL
下表显示了 ClickOnce 部署的四个 URL 选项。
URL 选项
描述
PublishURL
所需发布 ClickOnce 应用程序到 Web 站点。
InstallURL
可选。 设置此 URL 选项,则不同于安装站点时PublishURL
。 例如,可以设置PublishURL
到一个 FTP 路径和一组InstallURL
为 Web URL。
SupportURL
可选。 如果不同于支持站点,则设置此 URL 选项PublishURL
。 例如,可以设置SupportURL
到公司的客户支持网站。
UpdateURL
可选。 设置此 URL 选项,则更新位置不同于时InstallURL
。 例如,可以设置PublishURL
到一个 FTP 路径和一组UpdateURL
为 Web URL。