我是MSBuild的新手,但我设法设置了以下简单脚本:
<Project ToolsVersion="3.5" DefaultTargets="Compile" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition="'$(Configuration)' == ''">Debug</Configuration>
</PropertyGroup>
<ItemGroup>
<SolutionRoot Include=".." />
<BuildArtifacts Include=".\Artifacts\" />
<SolutionFile Include="..\SolutionName.sln" />
</ItemGroup>
<Target Name="Clean">
<RemoveDir Directories="@(BuildArtifacts)" />
</Target>
<Target Name="Init" DependsOnTargets="Clean">
<MakeDir Directories="@(BuildArtifacts)" />
</Target>
<Target Name="Compile" DependsOnTargets="Init">
<MSBuild Projects="@(SolutionFile)" Properties="OutDir=%(BuildArtifacts.FullPath);Configuration=$(Configuration)" />
<MakeDir Directories="%(BuildArtifacts.FullPath)\_PublishedWebsites\RDE.XAP.UnifiedGui.Web\Temp" />
</Target>
</Project>
该解决方案有23个项目,其中4个是WebApps。现在,脚本工作正常,输出正确生成。我反击的唯一问题是使用AJAX Control Toolkit的解决方案中的两个WebApp项目。该工具包包含一组包含本地化资源的文件夹(例如 ar , it , es , fr )。在MSBuild中构建解决方案时,这些文件夹不会复制到WebApps的 bin 目录中,但在Visual Studio中构建时会复制它们。
如何以干净的方式解决这个问题?我知道我可以写一个(非常复杂的)任务,在编译后复制目录,但它似乎不适合我。此外,Google,SO和MSDN都无法提供有关此类问题的更多详细信息。
答案 0 :(得分:0)
确保bin目录中的ajaxcontroltoolkit.dll已添加到源控件存储库中。 (即SVN,GIT,CNV等)