0

私は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つはWebAppです。これで、スクリプトは正常に機能し、出力が正しく生成されます。私が対抗する唯一の問題は、AJAXControlToolkitを使用するソリューション内の2つのWebAppプロジェクトにあります。ツールキットには、ローカライズされたリソースを含む一連のフォルダー(aritesfrなど)があります。これらのフォルダーは、ソリューションがMSBuildでビルドされるときに、WebAppsのbinディレクトリにコピーされませんが、VisualStudioでビルドされるときにコピーされます。

どうすればこれをきれいに解決できますか?コンパイル後にディレクトリをコピーする(かなり複雑な)タスクを作成できることは知っていますが、それは私にとって正しい解決策ではないようです。また、Google、SO、MSDNのいずれも、この種の問題に関する詳細を提供できませんでした。

4

1 に答える 1

0

Make sure the ajaxcontroltoolkit.dll from the bin directory was added to your source control repository. (ie SVN, GIT, CNV, etc.)

于 2010-04-21T19:09:21.530 に答える