1

私は TFS 2010 を使用しており、TFS ビルド セットアップを使用してソフトウェアをビルドしています。すべてがうまく機能しています。

ただし、次の警告が表示されます。

CSC: Assembly generation -- Referenced assembly 'mscorlib.dll' targets a different processor

これは、一部のコードが x86 のみとしてマークされており、x64 プラットフォームでビルドされているためです。リンク先のサードパーティ ソフトウェアのため、ターゲット プラットフォームを変更することはできません。また、2.0 フレームワークをターゲットにしていますが、これも現時点では変更できません。

したがって、このエラーを単純に抑制したいと思います。十分に簡単に思えます。Build テンプレートを編集して、/p:NoWarn=1607 を追加しただけです。それはうまくいきます。

しかし!

C# ではなく、VB.net で記述された 1 つのソリューションがあります。これにより、1 つのソリューションが次のエラーで失敗します。

vbc: warning number '1607' for the option nowarn is either not configurable or not valid

TFS ビルドの 1 つのソリューションでこの警告の抑制を無効にするにはどうすればよいですか? <customPropertiesForBuild>TFSBuild.proj ファイルでタグを使用しようとしましたが、おそらく正しく使用されていません。

これをプロジェクト ファイルに簡単に追加できることはわかっていますが、37 個のソリューションがあり、それぞれに複数のプロジェクト ファイルがあるため、実際にはそうしたくありません。

4

3 に答える 3

2

ビルド中にMSbuildが文句を言うので、TFSからその抑制を制御できるとは思いません(そして、TFSは単にMSBuildを呼び出して結果を収集します)。

この種の警告を無視するように msbuild に指示する特定のプロパティがあります。Propertygroup警告を生成するプロジェクトのプロジェクト ファイルの先頭に次の行を追加するだけです。

<PropertyGroup>
   ...
   <ResolveAssemblyWarnOrErrorOnTargetArchitectureMismatch>None</ResolveAssemblyWarnOrErrorOnTargetArchitectureMismatch>
</PropertyGroup>
于 2013-03-20T13:38:28.520 に答える
1

VB ソリューションのSolutionToBuild項目でプロパティメタデータを使用して、そのソリューションだけのために NoWarn を空の値に設定できるはずです。

<SolutionToBuild Include="$(BuildProjectFolderPath)/../../MyVbSolution.sln">
  <Targets></Targets>
  <Properties>NoWarn=;</Properties>
</SolutionToBuild>

それを試して、VB ソリューションがエラーなしでコンパイルされるかどうかを確認してください。

于 2013-03-20T20:54:27.493 に答える
0

TFS ビルドで MSbuild に NoWarn プロパティを提供できます。ビルド定義を編集し、[プロセス] タブで Advanced=>MSBuild Arguments を調べてから、qoutes なしでこの "/p:NoWarn=1607" を指定することも 1 つのアイデアです。ビルドもキューに入れる場合は、[パラメーター] タブ => [詳細設定] => [MSBuild 引数] で、/p:NoWarn=1607 と入力します。

于 2013-03-19T20:32:27.953 に答える