我已經編寫了一些代碼分析規則,並創建了一個包含一些自定義規則和一些Miscrosoft規則的規則集文件。這些規則是在MS Visual studio 2010上開發和構建的,並且能夠很好地工作。當我嘗試在MS Visual Studio 2012自定義規則中使用的相同規則集無法在沒有任何警告的情況下加載。Fxcop針對VS 2010設計的自定義代碼不適用於VS 2012
我曾嘗試構建VS VS 2012的相同項目,並使用與新規則集相同的程序集,但仍無法加載自定義規則。
我已經編寫了一些代碼分析規則,並創建了一個包含一些自定義規則和一些Miscrosoft規則的規則集文件。這些規則是在MS Visual studio 2010上開發和構建的,並且能夠很好地工作。當我嘗試在MS Visual Studio 2012自定義規則中使用的相同規則集無法在沒有任何警告的情況下加載。Fxcop針對VS 2010設計的自定義代碼不適用於VS 2012
我曾嘗試構建VS VS 2012的相同項目,並使用與新規則集相同的程序集,但仍無法加載自定義規則。
這是一個參考問題。
您的自定義規則使用對FxCopSDK.dll和Microsoft.CCI.dll的引用。每當新的Visual Studio發佈時,它們的版本都會發生更改。
其中,Visual Studio 2010使用版本10.0
,Visual Studio 2012使用版本11.0
。
您可以在您的.csproj
-文件中添加相對路徑。這使得瞬間在每一個新的Visual Studio版本重建:
<Reference Include="Microsoft.Cci">
<HintPath>$(CodeAnalysisPath)\Microsoft.Cci.dll</HintPath>
</Reference>
<Reference Include="FxCopSdk">
<HintPath>$(CodeAnalysisPath)\FxCopSdk.dll</HintPath>
</Reference>
我面對完全一樣的問題。似乎VS2012(甚至VS2013)不遵循規則的相對路徑。這個問題發佈[這裏也是](http://visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/3540100-make-codeanalysis-in-vs2012-support-rulesets-conta)。你能找到任何解決方案/解決方法嗎? – digitguy