【发布时间】:2010-04-07 16:05:36
【问题描述】:
在 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。
我还需要说明的是,我们正在寻找可从命令行中获得的解决方案,以便我们可以自动执行类似发布的命令以及自定义构建选项,并可能在未来自动执行部署。
【问题讨论】:
-
奇怪,我遇到了同样的问题,在 _CopyWebApplication 之前添加 ResolveReferences 为我解决了这个问题。你确定你的所有引用都将 CopyLocal 设置为 True 吗?
-
@Allen - 我没有查看 CopyLocal。我会仔细阅读的。