2

現在、プロジェクトコードを新しいTeamFoundationServiceの使用に移行中です。新しいコードをチェックインするたびに(そしてソリューションで単体テストも実行するように)ゲートビルドを実行するように設定しようとしていますが、TFSでビルドするたびに同じエラーが発生し続けます。

これが私が得続けるエラーです: MSBuildエラー

そして、これを扱う診断ログの一部は次のとおりです。エラーログ

私はそのApp.configファイルについてトリプルチェックしました:それはソース管理にあります。また、失敗したプロジェクトは他の場所でも問題なく構築されています。

Visual Studio 2012でビルドすると、正常に動作します。コマンドラインからMSBuildを使用してビルドすると、正常に動作します。Team Foundation Server 2012をローカルマシンにインストールして、TeamFoundationServiceがMSBuildに使用していた正確なコマンドライン引数を使用できるようにしました。それはうまくいきました。

さらに情報が必要な場合は、喜んで提供させていただきます。よろしくお願いします。

編集:MSDN TFServiceフォーラムのこの質問へのリンクは、完全な診断ログもあります。

編集(12/12):イリヤの提案をするとき(以下の彼の答えで)、私はログからこれを取得します:

より大きなログエラー

4

2 に答える 2

1

さて、私はついにこれが機能するようになりました。ハザ!

上記のリンクのMSDNの説明によると、DataLayerExtensionsプロジェクトのapp.configファイルが何らかの理由で破損しています。ソース管理からそれを削除してから、構成ファイルを作り直すことで、そのためのトリックが実行されました。12/12編集からの画像のエラーは、DataLayerプロジェクトを指していないことに注意することが重要です。これは、実際には、依存関係(GlobalItemsとDataLayer)が構築された後、DataLayerExtensionsプロジェクトを構築しようとする最初の行です。タブには少しニュアンスがあります。

その後、他のapp.configエラーも発生しました。これらはすべて、実際にはソース管理されていないか、DataLayerExtensions構成ファイルと同じ破損が原因です。

最後に言及すべき点は、TFServiceの場合、サードパーティのツールを使用していると、ローカルマシンで正常にビルドされたとしても、ビルドサービスでエラーが発生することです。新しいフォルダを作成し、それらのサードパーティアセンブリをそのフォルダにコピーし、関連するすべてのプロジェクトにそのフォルダ内の.dllファイルへの参照を切り替えさせ、すべてをチェックインする必要があることを修正するために。完了し、ビルドは正常に完了しました。

サードパーティのツールのようにExcelAPIも拒否された理由については、MSDNリンクに未解決の問題がありますが、それはこの質問の範囲外です。

于 2012-12-13T23:13:12.510 に答える
0

失敗したcsprojにこのようなものを追加してクラウドで実行してみてください。これにより、app.configが欠落している理由が明らかになる可能性があります。他のカスタムイベントの削除/名前変更が原因でmsbuildが失敗する可能性がありますか?

<Target Name="AfterBuild">
  <Warning Text="### DEBUG ###" />
  <ItemGroup>
    <All Include="**\*.*" />
    <Compile>
      <Exists Condition="!Exists('%(Identity)')">FALSE</Exists>
    </Compile>
    <AppConfigWithTargetPath>
      <Exists Condition="!Exists('%(Identity)')">FALSE</Exists>
    </AppConfigWithTargetPath>
  </ItemGroup>
  <Warning Text="### All: %(All.Identity)" />
  <Warning Text="### Compile: %(Compile.Exist) # %(Compile.Identity)" />
  <Warning Text="### App: %(AppConfigWithTargetPath.Exist) # %(AppConfigWithTargetPath.Identity) # %(AppConfigWithTargetPath.FullPath)" />
</Target>    
于 2012-12-12T01:26:46.240 に答える