使用MSBuild从网站生成中排除文件夹
我们使用MSBuild通过CruiseControl构建解决方案。作为解决方案的一部分,我们有几个程序集和一个网站。通过VS2008构建成功。然而,在构建框中,我们得到了以下错误使用MSBuild从网站生成中排除文件夹,msbuild,Msbuild,我们使用MSBuild通过CruiseControl构建解决方案。作为解决方案的一部分,我们有几个程序集和一个网站。通过VS2008构建成功。然而,在构建框中,我们得到了以下错误 ASPNETCOMPILER (,): errorASPCONFIG: The CodeDom provider type "Microsoft.VJSharp.VJSharpCodeProvider, VJSharpCodeProvider, Version=2.0.0.0, Culture=neu
ASPNETCOMPILER (,):
errorASPCONFIG: The CodeDom provider type "Microsoft.VJSharp.VJSharpCodeProvider, VJSharpCodeProvider, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" could not be located.
这是因为在网站的scripts文件夹中有几个扩展名为.java的文件。我们不希望生成这些文件。实际上,我们不需要脚本文件夹中的任何内容
有没有办法排除在网站项目中生成的文件夹或扩展?或者告诉MSBuild遵循VS2008用于决定编译内容的相同规则?生成文件中将包含相关项的项组。只需编辑文件即可排除该项 用于:
fr
fr
...
编辑:回答评论的更正
如果您只有一个sln文件,是否可以创建元msbuild脚本,将文件移到一边,调用任务以生成解决方案,然后将其放回原位?您可以使用此脚本。在WDP中,可以使用ExcludeFromBuild项排除这些文件。有关详细信息,请参阅。您可以使用元素()的删除属性删除整个文件夹。 例如,如果您有如下定义的项:
<ItemGroup>
...
<Compile Include="Tests\Test1.cs" />
<Compile Include="Tests\SubTests\SubTest1.cs" />
...
</ItemGroup>
...
...
如果要从“测试”文件夹中排除所有类,可以在项目结束时定义任务:
...
<PropertyGroup>
<CoreCompileDependsOn>$(CoreCompileDependsOn);ExcludeTestsFolder</CoreCompileDependsOn>
</PropertyGroup>
<Target Name="ExcludeTestsFolder">
<ItemGroup>
<Compile Remove="Tests\**\*.cs" />
</ItemGroup>
</Target>
</Project>
。。。
美元(CoreCompiledPendson);排除测试文件夹
在外部文件中定义这样的任务并使用element()导入也是一个好主意。我认为这不适用于网站项目,因为没有项目文件。我在sln文件中查找了一些方法,但没有找到。正因为如此,我不喜欢网站项目,更喜欢web应用程序。但是,您可以仅为CI生成创建msbuild文件吗?
...
<PropertyGroup>
<CoreCompileDependsOn>$(CoreCompileDependsOn);ExcludeTestsFolder</CoreCompileDependsOn>
</PropertyGroup>
<Target Name="ExcludeTestsFolder">
<ItemGroup>
<Compile Remove="Tests\**\*.cs" />
</ItemGroup>
</Target>
</Project>