apo*_*217 13 msbuild publish target
在Web上的其他地方,您可以找到使用类似这样的东西的建议来从命令行模拟VS 2005-2008 IDE中的发布功能(我希望我没有搞砸语法!):
msbuild /t:ResolveReferences;_CopyWebApplication /p:BuildingProject=true;OutDir=C:\inetpub\wwwroot\ blah.csproj
Run Code Online (Sandbox Code Playgroud)
现在,看起来.dll的副本很好.但是,有一些配置文件和模板文件被复制到bin文件夹,这是应用程序工作所需的.例如,NHibernate配置文件在blah.csproj中显示为:
<None Include="blah.cfg.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
Run Code Online (Sandbox Code Playgroud)
虽然在IDE中使用Publish会按原样复制此文件,但前面提到的_CopyWebApplication目标却没有.我需要在构建脚本中复制此文件.这是_CopyWebApplication的理想行为吗?有关如何解决此问题的任何建议?
编辑4/21/2010:
让我澄清一下,我们对VS 2005和VS 2008项目的限制(目前),以及我们的构建脚本是为MSBuild 3.x编写的.我们尚未准备好转向VS 2010.
我还要指出,我们正在寻找可在命令行中使用的解决方案,以便我们可以自动执行类似发布的命令以及自定义构建选项,并可能在未来实现自动化部署.
这只是一种解决方法.
在用于发布网站的构建脚本中,在Web项目本身上运行MSBuild以将其发布(Targets ="ResolveReferences; _CopyWebApplication")之后,我添加了一个复制操作:
<Copy SourceFiles="@(ProjectBinFiles)" DestinationFolder="$(StageBin)\%(ProjectBinFiles.RecursiveDir)" />
Run Code Online (Sandbox Code Playgroud)
其中ProjectBinFiles是表示源目录中bin目录中的文件的Item,StageBin是表示发布站点目录中bin文件夹的Property.到目前为止,它似乎工作.
| 归档时间: |
|
| 查看次数: |
10914 次 |
| 最近记录: |