19

3 つの Visual Studio ソリューションがあります。1 つ目はReleaseとしてビルドするように構成され、他の 2 つはDebugとしてビルドするように設定されています。

ビルド (デバッグ) する構成を明示的に指定する単純なMSBuildスクリプトを実行すると、最初のプロジェクトは引き続きリリースとしてビルドされます。

サンプル スクリプト:

<Target Name="Build">
    <ItemGroup>
        <ProjectToBuild Include="$(SolutionsPath)\Solution1.sln"/>
        <ProjectToBuild Include="$(SolutionsPath)\Core\Solution2.sln"/>
        <ProjectToBuild Include="$(SolutionsPath)\UI\Solution3.sln"/>
    </ItemGroup>
    <MSBuild Projects="@(ProjectToBuild)"
             Targets="Rebuild"
             Properties="Configuration=Debug;Platform=Any CPU"/>
</Target>

次のような上記のバリエーションを試しましたが、常に同じ結果になります。

<Target Name="Build">
    <ItemGroup>
        <ProjectToBuild Include="$(SolutionsPath)\Solution1.sln">
            <Properties>Configuration=Debug</Properties>
        </ProjectToBuild>

        <ProjectToBuild Include="$(SolutionsPath)\Core\Solution2.sln">
            <Properties>Configuration=Debug</Properties>
        </ProjectToBuild>

        <ProjectToBuild Include="$(SolutionsPath)\UI\Solution3.sln">
            <Properties>Configuration=Debug</Properties>
        </ProjectToBuild>
    </ItemGroup>
    <MSBuild Projects="@(ProjectToBuild)"
             Targets="Rebuild"
             Properties="Platform=Any CPU"/>
</Target>

同様の質問があることに注意してください。MSBuild タスク - 1 つのソリューションが debug ではなくリリースでビルドされているためビルドが失敗しますが、これは TFS と Teambuild に固有のものです。私はゼロから作成された単純なプロジェクト ファイルで純粋な MSBuild について話しています。

この問題を解決するにはどうすればよいですか?

4

4 に答える 4

27

platform any cpu のスペルの問題に関しては、ここ StackOverflow および Microsoft の他の場所で既に報告されている問題があることが判明しました。これは一般的に MSBuild に影響し、Platformドキュメントの問題全体が私の dotnet v3.5 MSBuild /help で省略されています。おそらくこれは誰かを助けるでしょう!

リンク

TFS 2010 の "AnyCPU" と "Any CPU" の対"Any CPU"
ソリューションとプロジェクトの間で "Any CPU" のプラットフォームに一貫性がない MSBuild

Closed as Won't Fix   
Type:  Bug
ID:  503935  
Opened:  10/26/2009 1:29:12 PM
Access Restriction:  Public  
0 Workaround(s)
5 User(s) can reproduce this bug  

MSBuildPlatformプロパティの、ソリューションをビルドするか、プロジェクトAny CPUをビルドするかによって異なります。 -ソリューション用- 使用-スペースあり -プロジェクト用- 使用-スペースなし
Platform="Any CPU"
Platform="AnyCPU"

于 2012-01-03T22:10:28.360 に答える
8

問題が見つかりました。MSBuild とは関係ありませんが、ビルド中のソリューションです。他人の心痛を救うための投稿。

何らかの理由で、次のようにソリューション内でデバッグ構成が構成されました。

代替テキスト http://www.freeimagehosting.net/uploads/cad0bdf1c0.jpg

したがって、MSBuildは言われたことだけを行っていました...

于 2009-04-08T11:21:05.687 に答える
8

この同じエラーが発生していました。解決策は、次のようにターゲット プラットフォームを明示的に指定することでした。

msbuild.exe /p:Platform="Any CPU"

これはWindows 7にアップグレードしてから発生し始めたので、それが関係していると思います。

于 2010-07-09T02:53:44.890 に答える
1

/ v:diagで実行してみましたか?

また、余談ですが、「AnyCPU」(スペースなし)が必要だと思います。

于 2009-04-06T23:51:10.593 に答える