在构建脚本中编辑csproj文件是很常见的吗?

时间:2011-04-16 18:53:04

标签: c# visual-studio-2010

我希望我的构建脚本能够在构建时从我的c#项目中自动添加(或删除)文件。我看到csproj文件中的条目告诉vs2010文件在项目中是相对简单的。

我想我可以使用构建脚本编辑csproj文件来添加应该存在的文件,并删除不应该基于构建脚本运行的某些逻辑的文件。

有人试图说服我吗?

由于

艾萨克

1 个答案:

答案 0 :(得分:3)

这不常见,不。

我不喜欢它的原因很简单:如果您在本地结帐时运行构建脚本,它将更改结帐。在我的书中,完美的构建脚本可以通过简单地删除构建输出和任何中间目录来实现。

如果要根据文件的构建位置包含/排除文件,那么最好的办法是创建一个额外的构建配置,在其中设置一个特殊的条件编译符号,并在源文件中使用#if

或者你可以简单地在.csproj中的文件上放一个Condition属性,因为它只是一个MSBuild文件。像这样:

<ItemGroup>
  <Compile Include="Something.cs" Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' "/>

(注意 - 我没有对上述内容进行过测试,但我认为它应该可行)