0

我正在尝试通过扩展现有的 msbuild 文件(Web 应用程序 .csproj 文件)为 msbuild 文件指定一些额外的目标/任务。这个想法是将配置特定的任务放在这个“扩展的 ms 构建文件”中,并在我们的构建服务器(TeamCity)中使用这个文件。我最初尝试解决的方法是在我的 Web 项目中添加一个文件夹“msbuildscripts”,并将扩展的 ms 构建文件放在那里:

<?xml version="1.0" encoding="utf-8" ?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Build">
  <Import Project="../My.Web.csproj" />
  ...more stuff...
</Project>

然后使用类似的东西构建这个文件:

c:\myweb\msbuild.exe msbuildscripts/extended.msbuild.file.xml

现在,这将不起作用,因为在导入原始 ms 构建文件时,该 csproj 文件将在“错误”文件夹(msbuildscripts)中“执行”,并且 csproj-build-file 不会找到任何它引用的文件夹/项目。

有没有办法告诉 msbuild.exe 使用特定的工作目录?我知道可以使用执行任务来解决这个问题,但这似乎不是一个好的解决方案。

4

1 回答 1

3

像这样使用 MSBuild 任务:

<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="MyBuild">

<ItemGroup>
 <ProjectToBuild Include="../My.Web.csproj" />
</ItemGroup>

<Target Name="MyBuild">
 <MSBuild Targets="Build" Projects="@(ProjectToBuild)"></MSBuild>
</Target>
</Project>
于 2011-09-28T09:53:51.107 回答