簡體   English   中英

如何禁用在TFS構建中抑制一個解決方案的警告

[英]How do I disable suppressing a warning for one solution in a TFS build

我正在使用TFS 2010並使用TFS構建設置來構建我們的軟件。 一切都很好。

但是,我們收到以下警告:

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

這是因為我們的一些代碼僅標記為x86,並且它是在x64平台上構建的。 由於我們鏈接到的第三方軟件,我們無法更改目標平台。 此外,我們的目標是2.0框架,此時也無法更改。

所以,我想簡單地抑制這個錯誤。 看起來很直接。 我只是編輯了Build模板,並添加了/ p:NoWarn = 1607。 這樣可行。

但!

我們有一個用VB.net編寫的解決方案,而不是C#。 這會導致一個解決方案失敗,並出現以下錯誤:

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

如何禁用在我的TFS構建中的那個解決方案上禁止此警告? 我試圖在我的TFSBuild.proj文件中使用<customPropertiesForBuild>標記,但我可能沒有正確使用它。

我知道我可以簡單地將它添加到我的項目文件中,但是我們有37個解決方案,每個解決方案都有多個項目文件,所以我真的不想這樣做。

我不認為你可以控制TFS的抑制,因為它是MSbuild在構建期間抱怨(並且TFS只是調用MSBuild並收集結果)。

有一個特定的屬性告訴msbuild忽略這種警告。 只需將以下行添加到項目文件中的頂級Propertygroup ,即可生成警告的項目:

<PropertyGroup>
   ...
   <ResolveAssemblyWarnOrErrorOnTargetArchitectureMismatch>None</ResolveAssemblyWarnOrErrorOnTargetArchitectureMismatch>
</PropertyGroup>

您應該能夠在VB解決方案的SolutionToBuild項目上使用Properties元數據,將NoWarn設置為僅適用於該解決方案的空值:

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

試試看看你的VB解決方案是否會編譯沒有錯誤。

您可以在TFS Build中為MSbuild提供NoWarn屬性。 還有一個想法是編輯構建定義,在“Process”選項卡中,瀏覽Advanced => MSBuild Arguments,然后在沒有qoutes的情況下提供此“/ p:NoWarn = 1607”。 當您還對構建進行排隊時,在Parameters選項卡=>高級=> MSBuild參數中,輸入/ p:NoWarn = 1607。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM