2014-02-13 30 views
5

我想構建一個使用MSBuild的解決方案,並且我想爲每個項目啓動代碼分析並將所有輸出放置到某個目錄中。我運行的命令是:指定多個項目的代碼分析輸出文件

msbuild.exe MySolution.sln /p:RunCodeAnalysis=True;CodeAnalysisLogFile=c:\BuildOutput\code-analysis.xml 

我遇到的問題是,代碼分析覆蓋解決方案中的每個項目的xml文件,所以我只得到了所建立的最後一個項目的輸出。有沒有一種方法可以告訴MSBuild將輸出附加到代碼分析或爲每個輸出生成一個唯一的文件?

注意:我不希望用CodeAnalysisLogFile xml標記更新每個CSProj文件,但如果沒有其他方法,那麼這就是我要做的。

+0

我什至不能得到一個日誌文件根本無法生成,甚至不是每個項目被覆蓋的日誌文件。 :-( –

回答

3

創建或使用導入的現有常用「Imports.Props」文件,並在其中包含CodeAnalysisLog的定義。

<?xml version="1.0" encoding="utf-8"?> 
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    <PropertyGroup> 
    <CodeAnalysisLogFile>$(OutputPath)\CodeAnalysis\$(AssemblyName).$(Platform).$(Configuration).xml</CodeAnalysisLogFile> 
    </PropertyGroup> 
</Project> 

然後在你的項目文件中導入這個共同的道具文件:

<Import Project="$(PropertyOfSourceFolder)\CodeAnalysis.props" /> 
0

您可以將CodeAnalysisLogFile參數只需設置爲相對路徑是這樣的:

CodeAnalysisLogFile=code-analysis.xml

這將爲每個項目完成的代碼分析創建單獨的日誌文件。該文件將分別出現在每個項目目錄中。

我似乎無法找到一種方法讓他們都在一個日誌文件中,儘管...似乎應該支持的東西,只是一個日誌文件中的單個解決方案的所有錯誤。