我有一个 WebRole Azure 项目,我计划在解决方案生成成功时在 TFS 生成服务器上生成包。
以下是我的解决方案的简要说明:
- 网络应用程序。
- TDD方法在开发过程中遵循。
- 1 个 Web 角色。
- 两种配置(云和本地)
- 基于 ACS 的验证。
在Visual Studio中,我正在使用PACKAGE命令创建包。
在运行 PACKAGE 命令时,我选择以下内容:
- 服务配置:云。
- 构建集合:发布。
- 选中 :启用远程桌面。
使用与 Visual Studio 中使用的相同设置在 TFS 生成服务器上创建包的过程是什么?
任何帮助,不胜感激。
您可以使用 msbuild CorePublish 目标来实现此目的。(例如,请参阅此博客文章)
由于安全最佳实践远程桌面在源代码树中启用,但实际证书、远程桌面设置不在其中,而是通过在部署期间更改配置来添加的。构建配置的行为符合预期,服务配置风格最终将作为单独的 cscfg 文件结束。
我们有一个 Common.Targets,所有项目都包含它,包括 .ccproj。它具有:
<Import Project=".AzurePackages.Targets" Condition=" '$(CloudToolsVersion)' != '' And '$(BuildingInsideVisualStudio)' != 'true'"/>
AzurePackages.Targets(略有编辑):
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<!-- Create Azure packages -->
<PackageName>$(AssemblyName).cspkg</PackageName>
<AzurePackageDir>$(OutDir)Packages$(AssemblyName).Azure</AzurePackageDir>
</PropertyGroup>
<Target Name="CopyPackageToOutDir" AfterTargets="Build" DependsOnTargets="CorePublish" Condition="'$(InRecursiveCall)' == ''">
<Copy SourceFiles="@(PublishServicePackage)" DestinationFolder="$(AzurePackageDir)" />
</Target>
至于配置,我们希望每个包附近有多个 .cscfg,因此我们决定在部署时采用哪一个。我们有一个解决方案,但对于一个问题来说太复杂了。