gpt4 book ai didi

visual-studio - 如何在 Visual Studio IDE 中将 Web 应用程序项目自动打包 (MSDeploy) 作为项目构建的一部分?

转载 作者:行者123 更新时间:2023-12-04 06:27:11 27 4
gpt4 key购买 nike

我在 Visual Studio 2010 中有一个 Web 应用程序项目,其中配置了 MS Deploy 选项。我可以在解决方案资源管理器中右键单击该项目并启动“构建部署包”,它告诉 MSDeploy 创建一个部署 zip 文件。这在内部取决于项目的 Build 目标。所有这些都有效。

问题是,我看不到如何让 MSDeploy 打包功能作为 Visual Studio 中构建目标的一部分运行。换句话说,当我在解决方案资源管理器中右键单击该项目并单击普通的“构建”时,我希望它也执行“构建部署包”。

“那为什么不直接单击构建部署包”,您会问吗?因为我真的希望我的 Web 应用程序的构建目标成为我的解决方案中另一个项目的依赖项,即 WIX 安装程序。换句话说,WIX 项目只有一个依赖项,即我的 Web 应用程序项目。当我构建WIX项目时,VS会自动构建web应用项目,但不会构建部署包。 WIX 安装程序使用部署包作为其安装过程的一部分。在此工作流程中,WIX 安装程序项目将无法构建,因为它找不到 MSDeploy 创建的文件(糟糕),或者它会找到一个陈旧的 MSDeploy 包并使用它而不会提示(非常糟糕)。使用 MSDeploy 和 Microsoft Installer 听起来有些多余,但我正在从 here 获取队列.我喜欢拥有一个可以与其他 MSI 链接或合并到 GPO 应用程序中的 MSI 的想法。

如果我只是尝试通过将其插入原始 csproj XML 来手动将“Package”作为构建后事件添加到 Web 应用程序项目:

<Target Name="AfterBuild">
<CallTarget Targets="Package" />
</Target>

那么普通的旧构建将失败,因为它将依赖于包,显然包目标依赖于构建。这是圆形的。

也许我真正想要的是一种方法来告诉 WIX 安装程序项目依赖于“构建部署包”目标的输出,或者在其项目依赖关系图中使用“构建部署包”而不是“构建”的解决方案.对此有何想法?

我不认为我想要一个必须从命令行执行的 MSBuild 脚本,就像在执行计划的 TFS TeamBuild 时一样。我想将此作为 VisualStudio 任务,由开发人员(我)使用显示器、键盘和鼠标随机执行,每天多次。事实上,我想说我根本没有访问TFS的权限。

最佳答案

好的,所以要回答我自己的问题......

只需将“;Package”添加到相关项目文件最顶部的默认构建目标列表中,如下所示:

<Project ToolsVersion="4.0" DefaultTargets="Build;Package" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

那是我的 csproj 文件的第 2 行。现在,当您单击“构建”时,该项目还会执行 MSDeploy Packaging 目标。并且,当另一个项目依赖于这个 Web 应用项目,并且另一个项目通过 VS 正常构建时,MSDeploy 打包目标会适时执行。

世界上一切都很好。为什么研究如此困难,为什么我必须手动编辑项目文件才能完成这项工作?不要回答那个。

关于visual-studio - 如何在 Visual Studio IDE 中将 Web 应用程序项目自动打包 (MSDeploy) 作为项目构建的一部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7420036/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com