2012-03-10 6 views
3

Я попытался убежать с запятой, как это в параметрах:Каков правильный способ избежать DisabledWarnings при вызове MSBuild из командной строки?

/fileLoggerParameters:LogFile=msbuild.log;Append;PerformanceSummary;DisabledWarnings=1%3B2%3B3%3B40003%3B40055%3B42020%3B42021%3B42022%3B42025%3B42104%3BBC40003%3BBC40055%3BBC42020%3BBC42021%3BBC42022%3BBC42025%3BBC42104;WarningLevel=0;VbcVerbosity=Quiet /property:DisabledWarnings=1%3B2%3B3%3B40003%3B40055%3B42020%3B42021%3B42022%3B42025%3B42104%3BBC40003%3BBC40055%3BBC42020%3BBC42021%3BBC42022%3BBC42025%3BBC42104;WarningLevel=0;VbcVerbosity=Quiet

Но в моем журнале он все еще показывает их как одичавшие:

Task "MSBuild" 
    Global Properties: 
     Configuration=Release 
     DebugSymbols=false 
     DisabledWarnings=1%3b2%3b3%3b40003%3b40055%3b42020%3b42021%3b42022%3b42025%3b42104%3bBC40003%3bBC40055%3bBC42020%3bBC42021%3bBC42022%3bBC42025%3bBC42104 
     Optimize=true 
     WarningLevel=0 
     VbcVerbosity=Quiet 

Я пытаюсь подавить предупреждения, как это (от aspnet_compiler.exe, который я предполагаю, использует vbc.exe под капотом), что я не безразлична:

  • warning BC42020: Variable declaration without an 'As' clause; type of Object assumed.
  • warning BC42021: Function without an 'As' clause; return type of Object assumed.
  • warning BC42022: Property without an 'As' clause; type of Object assumed.
  • т.д.

Update: Теперь я не уверен, что если побег с цитатами работал или нет. Я все еще получаю предупреждения, и я пробовал NoWarn, DisabledWarnings, /verbosity:quiet, WarningLevel=0 и VbcVerbosity=Quiet и ничто, кажется, их не подавляет.

Update 2: Вот полная команда сборки:

C:\WINDOWS\Microsoft.NET\Framework\v3.5\MSBuild.exe /nologo /consoleloggerparameters:PerformanceSummary /verbosity:quiet /fileLogger /fileLoggerParameters:LogFile=msbuild.log;Append;PerformanceSummary;VbcVerbosity=Quiet;DisabledWarnings="40003;40055;42020;42021;42022;42025;42104;BC40003;BC40055;BC42020;BC42021;BC42022;BC42025;BC42104";WarningLevel=0;NoWarn="40003;40055;42020;42021;42022;42025;42104;BC40003;BC40055;BC42020;BC42021;BC42022;BC42025;BC42104" /target:JustWebSite /maxcpucount:3 "Build.proj" 

И Build.proj:

<?xml version="1.0" encoding="utf-8"?> 
<Project DefaultTargets="JustWebSite" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5"> 

    <UsingTask TaskName="Microsoft.Build.Tasks.CreateTemporaryVCProject" AssemblyName="Microsoft.Build.Tasks.v3.5, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> 
    <UsingTask TaskName="Microsoft.Build.Tasks.ResolveVCProjectOutput" AssemblyName="Microsoft.Build.Tasks.v3.5, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> 

    <PropertyGroup> 
     <SolutionName>WebSiteX</SolutionName> 
     <ProjectFolder>D:\Projects\$(SolutionName)</ProjectFolder> 
     <VirtualPath>\</VirtualPath> 

     <AspNetConfiguration>Release</AspNetConfiguration> 
     <TargetFrameworkVersion>v3.5</TargetFrameworkVersion> 
     <AspNetVirtualPath>$(VirtualPath)</AspNetVirtualPath> 
     <AspNetPhysicalPath>$(ProjectFolder)\$(SolutionName)\</AspNetPhysicalPath> 
     <AspNetTargetPath>PrecompiledWeb\$(SolutionName)\</AspNetTargetPath> 
     <AspNetForce>true</AspNetForce> 
     <AspNetUpdateable>true</AspNetUpdateable> 
     <AspNetDebug>False</AspNetDebug> 
     <AspNetKeyFile></AspNetKeyFile> 
     <AspNetKeyContainer></AspNetKeyContainer> 
     <AspNetDelaySign></AspNetDelaySign> 
     <AspNetAPTCA></AspNetAPTCA> 
     <AspNetFixedNames>false</AspNetFixedNames> 
     <AspNetTargetPath Condition=" '$(OutDir)' != '' ">$(OutDir)_PublishedWebsites\$(SolutionName)\</AspNetTargetPath> 
    </PropertyGroup> 


    <Target Name="GetFrameworkPathAndRedistList"> 
     <GetFrameworkPath> 
      <Output TaskParameter="Path" ItemName="_CombinedTargetFrameworkDirectoriesItem" Condition="'$(MSBuildToolsVersion)' == '2.0'" /> 
      <Output TaskParameter="FrameworkVersion35Path" ItemName="_CombinedTargetFrameworkDirectoriesItem" Condition=" '$(TargetFrameworkVersion)' == 'v3.5' and '$(MSBuildToolsVersion)' != '2.0'" /> 
      <Output TaskParameter="FrameworkVersion30Path" ItemName="_CombinedTargetFrameworkDirectoriesItem" Condition=" ('$(TargetFrameworkVersion)' == 'v3.0' or '$(TargetFrameworkVersion)' == 'v3.5') and '$(MSBuildToolsVersion)' != '2.0'" /> 
      <Output TaskParameter="FrameworkVersion20Path" ItemName="_CombinedTargetFrameworkDirectoriesItem" Condition=" ('$(TargetFrameworkVersion)' == 'v2.0' or '$(TargetFrameworkVersion)' == 'v3.0' or '$(TargetFrameworkVersion)' == 'v3.5') and '$(MSBuildToolsVersion)' != '2.0'" /> 
     </GetFrameworkPath> 
     <CreateItem Include="@(_CombinedTargetFrameworkDirectoriesItem->'%(Identity)\RedistList\*.xml')"> 
      <Output TaskParameter="Include" ItemName="InstalledAssemblyTables" /> 
     </CreateItem> 
    </Target> 

    <Target Name="JustWebSite" DependsOnTargets="GetFrameworkPathAndRedistList"> 
     <Message Text="Just building website..." /> 

     <CombinePath BasePath="$(AspNetPhysicalPath)" Paths="@(References_ReferenceRelPath)"> 
      <Output TaskParameter="CombinedPaths" ItemName="References" /> 
     </CombinePath> 

     <Copy SourceFiles="@(References->'%(FullPath)')" DestinationFolder="$(AspNetPhysicalPath)\Bin\" Condition="!Exists('%(References.Identity)')" ContinueOnError="true" SkipUnchangedFiles="true" /> 

     <ResolveAssemblyReference Assemblies="@(References->'%(FullPath)')" TargetFrameworkDirectories="@(_CombinedTargetFrameworkDirectoriesItem)" InstalledAssemblyTables="@(InstalledAssemblyTables)" SearchPaths="{RawFileName};{TargetFrameworkDirectory};{GAC}" FindDependencies="true" FindSatellites="true" FindSerializationAssemblies="true" FindRelatedFiles="true" Condition="Exists('%(References.Identity)')"> 
      <Output TaskParameter="CopyLocalFiles" ItemName="References_CopyLocalFiles" /> 
     </ResolveAssemblyReference> 

     <Copy SourceFiles="@(References_CopyLocalFiles)" DestinationFiles="@(References_CopyLocalFiles->'$(AspNetPhysicalPath)\Bin\%(DestinationSubDirectory)%(Filename)%(Extension)')" Condition="(false) or ('$(AspNetConfiguration)' == 'Debug') or ('$(AspNetConfiguration)' == 'Release')" SkipUnchangedFiles="true" /> 

     <AspNetCompiler VirtualPath="$(AspNetVirtualPath)" PhysicalPath="$(AspNetPhysicalPath)" TargetPath="$(AspNetTargetPath)" Force="$(AspNetForce)" Updateable="$(AspNetUpdateable)" Debug="$(AspNetDebug)" KeyFile="$(AspNetKeyFile)" KeyContainer="$(AspNetKeyContainer)" DelaySign="$(AspNetDelaySign)" AllowPartiallyTrustedCallers="$(AspNetAPTCA)" FixedNames="$(AspNetFixedNames)" Condition="(false) or ('$(AspNetConfiguration)' == 'Debug') or ('$(AspNetConfiguration)' == 'Release')" /> 

    </Target> 
</Project> 
+0

Вы пробовали получение предупреждений игнорируется при компиляции с помощью Visu al Studio и обзор командной строки, который он показывает? (Я не на своем компьютере VS, чтобы попробовать это сам.) –

+0

Прошло некоторое время, Марк, поэтому я посмотрю, но я уверен, что сборка Visual Studio не имеет одинаковых настроек командной строки как msbuild. – travis

ответ

2

Заполняет NoWarn свойства следующим образом:

msbuild your.vbproj /p:NoWarn="40003,40055,42020,42021,42022,42025,42104,40003,40055" 
+0

Я не думал использовать кавычки, чтобы избежать их, спасибо, я попробую, когда вернусь в офис. – travis

+0

Это не сработало? – KMoraz

+0

Похоже, что он принял параметры, но затем он все еще показывал предупреждения. – travis