【问题标题】:How to create MSdeploy Package using MSBuild for all files in this project folder如何使用 MSBuild 为该项目文件夹中的所有文件创建 MSdeploy 包
【发布时间】:2015-07-11 20:27:36
【问题描述】:

我正在尝试通过命令行使用 msbuild 创建一个 Web 部署包。我一直在搜索并找到以下命令

 msbuild myproject.csproj /t:package

虽然它对我有用,但它只给了我当我们通过 Packge/Publish Web 选项卡创建 Web 部署包时 Visual Studio 给我们返回的内容,并从下拉菜单中选择了“仅运行此应用程序所需的文件”选项。但是我希望我的 Web 部署包看起来与从下拉菜单中选择“此项目文件夹中的所有文件”选项时得到的完全相同。我浏览过这样的链接http://sedodream.com/2010/05/01/WebDeploymentToolMSDeployBuildPackageIncludingExtraFilesOrExcludingSpecificFiles.aspx

但我想知道我是否真的需要自定义我的 .csproj 文件(该帖子中描述的方式),因为我想要的只是一个用于 msbuild 的命令行(显然比我上面提到的更复杂)可以模仿“此项目文件夹中的所有文件”选项,该选项使用我项目的原始 bin 文件夹中的所有 .dll 填充 “web 部署包的 bin 文件夹”,并为我生成一个更全面的软件包。

【问题讨论】:

    标签: asp.net iis msbuild msdeploy


    【解决方案1】:

    在您的命令行中,只需将 /p:FilesToIncludeForPublish=AllFilesInProjectFolder 添加到您的 msbuild 调用中。当你在做的时候,你可能还想传入一个特定的配置来构建/p:Configuration=Release

    所以:

     msbuild myproject.csproj /t:package /p:FilesToIncludeForPublish=AllFilesInProjectFolder /p:Configuration=Release
    

    提示:其中许多设置都存储在您的项目文件中。在记事本中打开文件并比较更改某些设置时所做的更改。 <propertygroup> 中的任何项目通常也可以使用/p: 参数通过命令行传递。

    【讨论】:

    • 非常感谢您的回答,我会尝试并告诉您,同时您能否详细说明您在回答中所说的内容,例如“在记事本中打开文件并比较更改”当您更改某些设置时制作”。我真的不明白。由于到目前为止我没有对我的 .csproj 文件进行任何更改,所以在记事本中打开它后我还应该比较它。
    • 当您更改打包设置时,它们会存储在项目文件中。属性页中的几乎所有设置都存储在项目文件中。
    • 如果我没听错的话,这是否意味着当我运行你建议我的命令时,它会在 .csproj xml 文件中创建一个新的 xml 元素(我可以在.csproj 文件中看到它)。创建 web 部署包后的 csproj 文件)
    • 我的意思是,当您想知道将哪些设置传递给团队命令行时,您可以通过比较通过 Visual Studio 更改该设置之前和之后的项目文件来了解。
    • 可能我现在知道了,这意味着假设我使用 VS 中的“仅运行此应用程序所需的文件”选项创建了一个 Web 部署包,然后我可以在 .csproj 文件中看到此设置而不是其他设置当我选择选项“此项目文件夹中的所有文件”时设置。对吗?
    猜你喜欢
    • 1970-01-01
    • 2011-05-07
    • 2019-11-07
    • 1970-01-01
    • 2022-10-04
    • 1970-01-01
    • 2022-11-10
    • 2010-09-12
    • 1970-01-01
    相关资源
    最近更新 更多