代码之家  ›  专栏  ›  技术社区  ›  jyoungdev Thilo

MSBuild target\u CopyWebApplication未将所有必需的文件复制到bin文件夹

  •  13
  • jyoungdev Thilo  · 技术社区  · 16 年前

    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中使用“发布”时,会按原样复制此文件,但前面提到的\u CopyWebApplication目标不会。我需要在构建脚本中复制此文件。这是否是\u CopyWebApplication需要的行为?关于如何解决这个问题有什么建议吗?

    让我澄清一下,我们(目前)仅限于VS2005和VS2008项目,并且我们的构建脚本是为MSBuild3.x编写的。我们还没有准备好转移到VS2010。

    我还要说明一下,我们正在寻找一个在命令行中可用的解决方案,这样我们就可以自动执行类似于发布的命令以及自定义构建选项,并可能自动执行以后的部署。

    3 回复  |  直到 16 年前
        1
  •  6
  •   jyoungdev Thilo    16 年前

    这只是一个解决办法。

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

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

        2
  •  0
  •   Bryce Fischer    16 年前

    MSDeploy . 正在调查,但可能提供所需的功能。。。

        3
  •  0
  •   laurie    12 年前

    • 将Copy to Output file属性设置为Copy if newer