如何让msbuild在自定义事件后编译项目

时间:2013-11-25 21:20:34

标签: msbuild

我正在尝试修改自动化测试版本中的AssemblyInfo.cs中的版本号 - 一个MSBuild .proj。我可以成功地将任何我想要的内容写入AssemblyInfo.cs,但这不会反映在bin或bin / Project / _PublishedWebsites / bin中的项目DLL中。

我尝试在我的msbuild .proj中使用 InitialTargets BeforeBuild BeforeCompile ,但这会修改​​src /.../ Properties / AssemblyInfo.cs它似乎最终没有进入编译DLL。

我尝试过的一些例子:

<Project ToolsVersion="4.0" InitialTargets="BeforeCompile" DefaultTargets="FullPublish" ...

和/或

<Target Name="BeforeCompile"

更全面的图片是我想要做以下事情:

  1. 使用TFS构建版本/修订版
  2. 修改AssemblyInfo
  3. 构建/编译sln
  4. 转换web.config
  5. 致电节点r.js
  6. 部署到我们的负载平衡服务器
  7. 单独我已经让它们都工作正常,我只是缺少一个版本号正确的compile project.dll - 它总是说 1.0.0.0 。我希望1)在项目建成之前和3-5之后。

    我正在使用MSBuild.Community.Tasks.Targets和Microsoft.Web.Publishing.Tasks.dll,如果它有任何相关性。

1 个答案:

答案 0 :(得分:0)

愚蠢地,这与目标秩序无关。在我的Test构建中,我首先添加了.sln,然后是publish.proj第二个(包含上面的内容)。因此无论我在.proj文件中做了什么,它总是在解决方案编译之后。

答案显然是将.proj分成2并以正确的顺序运行它们。