gpt4 book ai didi

MSBuild 目标 _CopyWebApplication 不会将所有必需的文件复制到 bin 文件夹

转载 作者:行者123 更新时间:2023-12-03 23:55:27 24 4
gpt4 key购买 nike

在 Web 上的其他地方,您可以找到有关使用这样的方法从命令行模拟 VS 2005-2008 IDE 中的发布功能的建议(我希望我没有弄乱语法!):

msbuild /t:ResolveReferences;_CopyWebApplication /p:BuildingProject=true;OutDir=C:\inetpub\wwwroot\ blah.csproj

现在,看起来 .dll 的副本没问题。但是,某些配置文件和模板文件会复制到应用程序运行所需的 bin 文件夹中。例如,一个 NHibernate 配置文件在 blah.csproj 中显示为:
<None Include="blah.cfg.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>

虽然在 IDE 中使用 Publish 会按原样复制此文件,但上述 _CopyWebApplication 目标不会。我需要在构建脚本中复制这个文件。这是 _CopyWebApplication 所需的行为吗?有关如何解决此问题的任何建议?

2010 年 4 月 21 日编辑:

让我澄清一下,我们(目前)仅限于 VS 2005 和 VS 2008 项目,并且我们的构建脚本是为 MSBuild 3.x 编写的。我们还没有准备好迁移到 VS 2010。

让我还指定我们正在寻找从命令行中可用的解决方案,以便我们可以自动执行类似发布的命令以及自定义构建选项,并可能在 future 自动执行部署。

最佳答案

这只是一种解决方法。

在发布网站的构建脚本中,在Web项目本身运行MSBuild发布后(Targets="ResolveReferences;_CopyWebApplication"),添加了复制操作:

<Copy SourceFiles="@(ProjectBinFiles)" DestinationFolder="$(StageBin)\%(ProjectBinFiles.RecursiveDir)" />

其中 ProjectBinFiles 是表示源目录中 bin 目录中文件的 Item,StageBin 是表示已发布站点目录中 bin 文件夹的属性。到目前为止,它似乎有效。

关于MSBuild 目标 _CopyWebApplication 不会将所有必需的文件复制到 bin 文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2593987/

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