analyzer
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
# Quick Start - Unity Editor Only Analyzer
|
||||
|
||||
## Bước 1: Analyzer đã được build ✅
|
||||
|
||||
Analyzer đã được build thành công tại:
|
||||
```
|
||||
E:\Projects\perfect-world-unity\UnityEditorOnlyAnalyzer\bin\Release\netstandard2.0\UnityEditorOnlyAnalyzer.dll
|
||||
```
|
||||
|
||||
## Bước 2: Kích hoạt Analyzer
|
||||
|
||||
### Tự động (Khuyến nghị):
|
||||
1. Mở Unity Editor
|
||||
2. File `Assets/Editor/AddAnalyzerPostprocessor.cs` sẽ tự động thêm analyzer vào `.csproj` files khi Unity generate chúng
|
||||
3. Reload project trong Visual Studio/VS Code
|
||||
|
||||
### Thủ công:
|
||||
Mở file `Assembly-CSharp.csproj` và thêm trước thẻ `</Project>`:
|
||||
|
||||
```xml
|
||||
<ItemGroup>
|
||||
<Analyzer Include="E:\Projects\perfect-world-unity\UnityEditorOnlyAnalyzer\bin\Release\netstandard2.0\UnityEditorOnlyAnalyzer.dll" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
```
|
||||
|
||||
## Bước 3: Kiểm tra
|
||||
|
||||
Tạo file test để kiểm tra:
|
||||
|
||||
```csharp
|
||||
#if UNITY_EDITOR
|
||||
public class EditorOnlyClass
|
||||
{
|
||||
public static void EditorMethod() { }
|
||||
}
|
||||
#endif
|
||||
|
||||
public class RegularClass
|
||||
{
|
||||
public void Test()
|
||||
{
|
||||
EditorOnlyClass.EditorMethod(); // ⚠️ Nên có warning ở đây
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Bạn sẽ thấy warning trong Visual Studio/VS Code:
|
||||
```
|
||||
UNITY_EDITOR_ONLY_USAGE: Method/Type 'EditorMethod' is only available in UNITY_EDITOR and may cause build errors
|
||||
```
|
||||
|
||||
## Lưu ý
|
||||
|
||||
- Analyzer chỉ hoạt động trong IDE (Visual Studio/VS Code), không phải trong Unity Editor
|
||||
- Cần reload project sau khi thêm analyzer
|
||||
- Nếu không thấy warnings, kiểm tra Error List trong Visual Studio (View > Error List)
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
Nếu analyzer không hoạt động, xem file `SETUP_UNITY_EDITOR_ANALYZER.md` để biết chi tiết.
|
||||
@@ -0,0 +1,88 @@
|
||||
# Unity Editor Only Usage Analyzer
|
||||
|
||||
Roslyn Analyzer để phát hiện việc sử dụng code được wrap trong `#if UNITY_EDITOR` từ code không có directive tương ứng, có thể gây lỗi build.
|
||||
|
||||
## Cài đặt
|
||||
|
||||
### Cách 1: Build và thêm vào .csproj (Khuyến nghị)
|
||||
|
||||
1. Build analyzer project:
|
||||
```bash
|
||||
cd UnityEditorOnlyAnalyzer
|
||||
dotnet build -c Release
|
||||
```
|
||||
|
||||
2. Thêm analyzer vào Unity project bằng cách chỉnh sửa `.csproj` files:
|
||||
```xml
|
||||
<ItemGroup>
|
||||
<Analyzer Include="$(SolutionDir)UnityEditorOnlyAnalyzer\bin\Release\netstandard2.0\UnityEditorOnlyAnalyzer.dll" />
|
||||
</ItemGroup>
|
||||
```
|
||||
|
||||
### Cách 2: Sử dụng như NuGet Package
|
||||
|
||||
1. Tạo NuGet package:
|
||||
```bash
|
||||
dotnet pack -c Release
|
||||
```
|
||||
|
||||
2. Thêm vào `packages.config` hoặc sử dụng PackageReference trong .csproj
|
||||
|
||||
## Cách hoạt động
|
||||
|
||||
Analyzer sẽ cảnh báo khi:
|
||||
- Một method được định nghĩa trong `#if UNITY_EDITOR` nhưng được gọi từ code không có directive này
|
||||
- Một class được định nghĩa trong `#if UNITY_EDITOR` nhưng được khởi tạo từ code không có directive này
|
||||
- Một property/field được định nghĩa trong `#if UNITY_EDITOR` nhưng được truy cập từ code không có directive này
|
||||
|
||||
## Ví dụ
|
||||
|
||||
### ❌ Code sẽ bị cảnh báo:
|
||||
|
||||
```csharp
|
||||
#if UNITY_EDITOR
|
||||
public void EditorOnlyMethod() { }
|
||||
#endif
|
||||
|
||||
public void RegularMethod()
|
||||
{
|
||||
EditorOnlyMethod(); // ⚠️ Cảnh báo: EditorOnlyMethod chỉ có trong UNITY_EDITOR
|
||||
}
|
||||
```
|
||||
|
||||
### ✅ Code đúng:
|
||||
|
||||
```csharp
|
||||
#if UNITY_EDITOR
|
||||
public void EditorOnlyMethod() { }
|
||||
#endif
|
||||
|
||||
#if UNITY_EDITOR
|
||||
public void RegularMethod()
|
||||
{
|
||||
EditorOnlyMethod(); // ✅ OK: Cả hai đều trong UNITY_EDITOR
|
||||
}
|
||||
#endif
|
||||
```
|
||||
|
||||
## Diagnostic ID
|
||||
|
||||
- **ID**: `UNITY_EDITOR_ONLY_USAGE`
|
||||
- **Severity**: Warning
|
||||
- **Category**: Unity
|
||||
|
||||
## Tùy chỉnh
|
||||
|
||||
Bạn có thể disable warning này trong `.editorconfig`:
|
||||
|
||||
```ini
|
||||
[*.cs]
|
||||
dotnet_diagnostic.UNITY_EDITOR_ONLY_USAGE.severity = none
|
||||
```
|
||||
|
||||
Hoặc trong code:
|
||||
```csharp
|
||||
#pragma warning disable UNITY_EDITOR_ONLY_USAGE
|
||||
// Your code here
|
||||
#pragma warning restore UNITY_EDITOR_ONLY_USAGE
|
||||
```
|
||||
@@ -0,0 +1,301 @@
|
||||
using System;
|
||||
using System.Collections.Immutable;
|
||||
using System.Linq;
|
||||
using Microsoft.CodeAnalysis;
|
||||
using Microsoft.CodeAnalysis.CSharp;
|
||||
using Microsoft.CodeAnalysis.CSharp.Syntax;
|
||||
using Microsoft.CodeAnalysis.Diagnostics;
|
||||
|
||||
[DiagnosticAnalyzer(LanguageNames.CSharp)]
|
||||
public class UnityEditorOnlyUsageAnalyzer : DiagnosticAnalyzer
|
||||
{
|
||||
public const string DiagnosticId = "UNITY_EDITOR_ONLY_USAGE";
|
||||
|
||||
private static readonly LocalizableString Title =
|
||||
"Usage of UNITY_EDITOR-only code";
|
||||
|
||||
private static readonly LocalizableString MessageFormat =
|
||||
"Method/Type '{0}' is only available in UNITY_EDITOR and may cause build errors";
|
||||
|
||||
private static readonly LocalizableString Description =
|
||||
"Warns when code wrapped in #if UNITY_EDITOR is used from code that is not wrapped in the same directive.";
|
||||
|
||||
private const string Category = "Unity";
|
||||
|
||||
private static readonly DiagnosticDescriptor Rule = new DiagnosticDescriptor(
|
||||
DiagnosticId,
|
||||
Title,
|
||||
MessageFormat,
|
||||
Category,
|
||||
DiagnosticSeverity.Error, // Changed from Warning to Error để hiển thị màu đỏ
|
||||
isEnabledByDefault: true,
|
||||
description: Description);
|
||||
|
||||
public override ImmutableArray<DiagnosticDescriptor> SupportedDiagnostics =>
|
||||
ImmutableArray.Create(Rule);
|
||||
|
||||
public override void Initialize(AnalysisContext context)
|
||||
{
|
||||
context.ConfigureGeneratedCodeAnalysis(GeneratedCodeAnalysisFlags.None);
|
||||
context.EnableConcurrentExecution();
|
||||
|
||||
// Kiểm tra method calls
|
||||
context.RegisterSyntaxNodeAction(AnalyzeInvocation, SyntaxKind.InvocationExpression);
|
||||
|
||||
// Kiểm tra property/field access
|
||||
context.RegisterSyntaxNodeAction(AnalyzeMemberAccess, SyntaxKind.SimpleMemberAccessExpression);
|
||||
|
||||
// Kiểm tra identifier (biến đơn giản như m_nCurPanel2)
|
||||
context.RegisterSyntaxNodeAction(AnalyzeIdentifier, SyntaxKind.IdentifierName);
|
||||
|
||||
// Kiểm tra object creation (new ClassName())
|
||||
context.RegisterSyntaxNodeAction(AnalyzeObjectCreation, SyntaxKind.ObjectCreationExpression);
|
||||
}
|
||||
|
||||
private void AnalyzeInvocation(SyntaxNodeAnalysisContext context)
|
||||
{
|
||||
var invocation = (InvocationExpressionSyntax)context.Node;
|
||||
|
||||
if (invocation.Expression is MemberAccessExpressionSyntax memberAccess)
|
||||
{
|
||||
CheckMemberAccess(context, memberAccess, invocation);
|
||||
}
|
||||
else if (invocation.Expression is IdentifierNameSyntax identifier)
|
||||
{
|
||||
CheckIdentifier(context, identifier, invocation);
|
||||
}
|
||||
}
|
||||
|
||||
private void AnalyzeMemberAccess(SyntaxNodeAnalysisContext context)
|
||||
{
|
||||
var memberAccess = (MemberAccessExpressionSyntax)context.Node;
|
||||
CheckMemberAccess(context, memberAccess, memberAccess);
|
||||
}
|
||||
|
||||
private void AnalyzeIdentifier(SyntaxNodeAnalysisContext context)
|
||||
{
|
||||
var identifier = (IdentifierNameSyntax)context.Node;
|
||||
|
||||
// Bỏ qua namespace declarations
|
||||
if (identifier.Parent is QualifiedNameSyntax ||
|
||||
identifier.Parent is UsingDirectiveSyntax ||
|
||||
identifier.Parent is NamespaceDeclarationSyntax ||
|
||||
identifier.Parent is FileScopedNamespaceDeclarationSyntax)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// Bỏ qua nếu identifier này là phần của member access (đã xử lý ở AnalyzeMemberAccess)
|
||||
if (identifier.Parent is MemberAccessExpressionSyntax memberAccess && memberAccess.Name == identifier)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// Bỏ qua nếu identifier này là phần của invocation (đã xử lý ở AnalyzeInvocation)
|
||||
if (identifier.Parent is InvocationExpressionSyntax)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// Bỏ qua type names trong declarations
|
||||
if (identifier.Parent is VariableDeclarationSyntax ||
|
||||
identifier.Parent is TypeSyntax)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
CheckIdentifier(context, identifier, identifier);
|
||||
}
|
||||
|
||||
private void AnalyzeObjectCreation(SyntaxNodeAnalysisContext context)
|
||||
{
|
||||
var objectCreation = (ObjectCreationExpressionSyntax)context.Node;
|
||||
|
||||
if (objectCreation.Type != null)
|
||||
{
|
||||
var symbol = context.SemanticModel.GetSymbolInfo(objectCreation.Type).Symbol;
|
||||
if (symbol != null && IsEditorOnlySymbol(symbol, context))
|
||||
{
|
||||
if (!IsInEditorOnlyContext(context.Node))
|
||||
{
|
||||
var diagnostic = Diagnostic.Create(
|
||||
Rule,
|
||||
objectCreation.Type.GetLocation(),
|
||||
symbol.Name);
|
||||
context.ReportDiagnostic(diagnostic);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void CheckMemberAccess(SyntaxNodeAnalysisContext context, MemberAccessExpressionSyntax memberAccess, SyntaxNode reportNode)
|
||||
{
|
||||
var symbolInfo = context.SemanticModel.GetSymbolInfo(memberAccess);
|
||||
|
||||
if (symbolInfo.Symbol == null)
|
||||
return;
|
||||
|
||||
// Check if the symbol is defined within #if UNITY_EDITOR
|
||||
if (IsEditorOnlySymbol(symbolInfo.Symbol, context))
|
||||
{
|
||||
// Check if the current usage is NOT within #if UNITY_EDITOR
|
||||
if (!IsInEditorOnlyContext(memberAccess))
|
||||
{
|
||||
var diagnostic = Diagnostic.Create(
|
||||
Rule,
|
||||
reportNode.GetLocation(),
|
||||
symbolInfo.Symbol.Name);
|
||||
context.ReportDiagnostic(diagnostic);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void CheckIdentifier(SyntaxNodeAnalysisContext context, IdentifierNameSyntax identifier, SyntaxNode reportNode)
|
||||
{
|
||||
var symbolInfo = context.SemanticModel.GetSymbolInfo(identifier);
|
||||
|
||||
if (symbolInfo.Symbol == null)
|
||||
return;
|
||||
|
||||
if (IsEditorOnlySymbol(symbolInfo.Symbol, context))
|
||||
{
|
||||
if (!IsInEditorOnlyContext(identifier))
|
||||
{
|
||||
var diagnostic = Diagnostic.Create(
|
||||
Rule,
|
||||
reportNode.GetLocation(),
|
||||
symbolInfo.Symbol.Name);
|
||||
context.ReportDiagnostic(diagnostic);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private bool IsEditorOnlySymbol(ISymbol symbol, SyntaxNodeAnalysisContext context)
|
||||
{
|
||||
if (symbol == null)
|
||||
return false;
|
||||
|
||||
// Get the syntax reference
|
||||
var syntaxReferences = symbol.DeclaringSyntaxReferences;
|
||||
if (syntaxReferences.Length == 0)
|
||||
return false;
|
||||
|
||||
foreach (var syntaxRef in syntaxReferences)
|
||||
{
|
||||
var syntax = syntaxRef.GetSyntax(context.CancellationToken);
|
||||
if (IsInEditorOnlyContext(syntax))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
private bool IsInEditorOnlyContext(SyntaxNode node)
|
||||
{
|
||||
if (node == null)
|
||||
return false;
|
||||
|
||||
var root = node.SyntaxTree.GetRoot();
|
||||
var nodeStart = node.SpanStart;
|
||||
|
||||
// Get all trivia in the file
|
||||
var allTrivia = root.DescendantTrivia();
|
||||
|
||||
int activeIfDirectiveStart = -1;
|
||||
bool inEditorBlock = false;
|
||||
|
||||
foreach (var trivia in allTrivia)
|
||||
{
|
||||
// Stop checking if we've passed the node
|
||||
if (trivia.SpanStart > nodeStart)
|
||||
break;
|
||||
|
||||
if (trivia.IsKind(SyntaxKind.IfDirectiveTrivia))
|
||||
{
|
||||
var directive = trivia.GetStructure() as ConditionalDirectiveTriviaSyntax;
|
||||
if (directive != null && ContainsUnityEditorCondition(directive))
|
||||
{
|
||||
activeIfDirectiveStart = directive.SpanStart;
|
||||
inEditorBlock = true;
|
||||
}
|
||||
}
|
||||
else if (trivia.IsKind(SyntaxKind.EndIfDirectiveTrivia))
|
||||
{
|
||||
// Check if this #endif closes the active UNITY_EDITOR block
|
||||
if (inEditorBlock && activeIfDirectiveStart >= 0)
|
||||
{
|
||||
// This #endif closes the UNITY_EDITOR block
|
||||
// Check if node is before this #endif
|
||||
if (nodeStart < trivia.SpanStart)
|
||||
{
|
||||
// Node is inside the UNITY_EDITOR block
|
||||
return true;
|
||||
}
|
||||
// Node is after this #endif, so not in UNITY_EDITOR block
|
||||
inEditorBlock = false;
|
||||
activeIfDirectiveStart = -1;
|
||||
}
|
||||
}
|
||||
else if (trivia.IsKind(SyntaxKind.ElseDirectiveTrivia))
|
||||
{
|
||||
// #else closes the if block, so if we're in UNITY_EDITOR block, it ends here
|
||||
if (inEditorBlock && activeIfDirectiveStart >= 0)
|
||||
{
|
||||
if (nodeStart < trivia.SpanStart)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
inEditorBlock = false;
|
||||
activeIfDirectiveStart = -1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// If we're still in an editor block and haven't hit an #endif, check if node is after the #if
|
||||
if (inEditorBlock && activeIfDirectiveStart >= 0)
|
||||
{
|
||||
// Check if there's an #endif after the node
|
||||
foreach (var trivia in allTrivia)
|
||||
{
|
||||
if (trivia.SpanStart <= nodeStart)
|
||||
continue;
|
||||
|
||||
if (trivia.IsKind(SyntaxKind.EndIfDirectiveTrivia))
|
||||
{
|
||||
// Node is between #if UNITY_EDITOR and #endif
|
||||
return true;
|
||||
}
|
||||
else if (trivia.IsKind(SyntaxKind.IfDirectiveTrivia))
|
||||
{
|
||||
// New #if starts, check if it's nested
|
||||
var directive = trivia.GetStructure() as ConditionalDirectiveTriviaSyntax;
|
||||
if (directive != null && ContainsUnityEditorCondition(directive))
|
||||
{
|
||||
// Nested UNITY_EDITOR block, continue checking
|
||||
continue;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// If no #endif found after node, node is still in the block
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
private bool ContainsUnityEditorCondition(ConditionalDirectiveTriviaSyntax directive)
|
||||
{
|
||||
if (directive == null)
|
||||
return false;
|
||||
|
||||
var condition = directive.Condition?.ToString();
|
||||
if (string.IsNullOrEmpty(condition))
|
||||
return false;
|
||||
|
||||
// Check for UNITY_EDITOR in the condition (exact match or as part of expression)
|
||||
return condition.IndexOf("UNITY_EDITOR", StringComparison.OrdinalIgnoreCase) >= 0;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,320 @@
|
||||
{
|
||||
"runtimeTarget": {
|
||||
"name": ".NETStandard,Version=v2.0/",
|
||||
"signature": ""
|
||||
},
|
||||
"compilationOptions": {},
|
||||
"targets": {
|
||||
".NETStandard,Version=v2.0": {},
|
||||
".NETStandard,Version=v2.0/": {
|
||||
"UnityEditorOnlyAnalyzer/1.0.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.CodeAnalysis.Analyzers": "3.3.4",
|
||||
"Microsoft.CodeAnalysis.CSharp": "4.5.0",
|
||||
"NETStandard.Library": "2.0.3"
|
||||
},
|
||||
"runtime": {
|
||||
"UnityEditorOnlyAnalyzer.dll": {}
|
||||
}
|
||||
},
|
||||
"Microsoft.CodeAnalysis.Analyzers/3.3.4": {},
|
||||
"Microsoft.CodeAnalysis.Common/4.5.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.CodeAnalysis.Analyzers": "3.3.4",
|
||||
"System.Collections.Immutable": "6.0.0",
|
||||
"System.Memory": "4.5.5",
|
||||
"System.Reflection.Metadata": "6.0.1",
|
||||
"System.Runtime.CompilerServices.Unsafe": "6.0.0",
|
||||
"System.Text.Encoding.CodePages": "6.0.0",
|
||||
"System.Threading.Tasks.Extensions": "4.5.4"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/netstandard2.0/Microsoft.CodeAnalysis.dll": {
|
||||
"assemblyVersion": "4.5.0.0",
|
||||
"fileVersion": "4.500.23.10905"
|
||||
}
|
||||
},
|
||||
"resources": {
|
||||
"lib/netstandard2.0/cs/Microsoft.CodeAnalysis.resources.dll": {
|
||||
"locale": "cs"
|
||||
},
|
||||
"lib/netstandard2.0/de/Microsoft.CodeAnalysis.resources.dll": {
|
||||
"locale": "de"
|
||||
},
|
||||
"lib/netstandard2.0/es/Microsoft.CodeAnalysis.resources.dll": {
|
||||
"locale": "es"
|
||||
},
|
||||
"lib/netstandard2.0/fr/Microsoft.CodeAnalysis.resources.dll": {
|
||||
"locale": "fr"
|
||||
},
|
||||
"lib/netstandard2.0/it/Microsoft.CodeAnalysis.resources.dll": {
|
||||
"locale": "it"
|
||||
},
|
||||
"lib/netstandard2.0/ja/Microsoft.CodeAnalysis.resources.dll": {
|
||||
"locale": "ja"
|
||||
},
|
||||
"lib/netstandard2.0/ko/Microsoft.CodeAnalysis.resources.dll": {
|
||||
"locale": "ko"
|
||||
},
|
||||
"lib/netstandard2.0/pl/Microsoft.CodeAnalysis.resources.dll": {
|
||||
"locale": "pl"
|
||||
},
|
||||
"lib/netstandard2.0/pt-BR/Microsoft.CodeAnalysis.resources.dll": {
|
||||
"locale": "pt-BR"
|
||||
},
|
||||
"lib/netstandard2.0/ru/Microsoft.CodeAnalysis.resources.dll": {
|
||||
"locale": "ru"
|
||||
},
|
||||
"lib/netstandard2.0/tr/Microsoft.CodeAnalysis.resources.dll": {
|
||||
"locale": "tr"
|
||||
},
|
||||
"lib/netstandard2.0/zh-Hans/Microsoft.CodeAnalysis.resources.dll": {
|
||||
"locale": "zh-Hans"
|
||||
},
|
||||
"lib/netstandard2.0/zh-Hant/Microsoft.CodeAnalysis.resources.dll": {
|
||||
"locale": "zh-Hant"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.CodeAnalysis.CSharp/4.5.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.CodeAnalysis.Common": "4.5.0"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/netstandard2.0/Microsoft.CodeAnalysis.CSharp.dll": {
|
||||
"assemblyVersion": "4.5.0.0",
|
||||
"fileVersion": "4.500.23.10905"
|
||||
}
|
||||
},
|
||||
"resources": {
|
||||
"lib/netstandard2.0/cs/Microsoft.CodeAnalysis.CSharp.resources.dll": {
|
||||
"locale": "cs"
|
||||
},
|
||||
"lib/netstandard2.0/de/Microsoft.CodeAnalysis.CSharp.resources.dll": {
|
||||
"locale": "de"
|
||||
},
|
||||
"lib/netstandard2.0/es/Microsoft.CodeAnalysis.CSharp.resources.dll": {
|
||||
"locale": "es"
|
||||
},
|
||||
"lib/netstandard2.0/fr/Microsoft.CodeAnalysis.CSharp.resources.dll": {
|
||||
"locale": "fr"
|
||||
},
|
||||
"lib/netstandard2.0/it/Microsoft.CodeAnalysis.CSharp.resources.dll": {
|
||||
"locale": "it"
|
||||
},
|
||||
"lib/netstandard2.0/ja/Microsoft.CodeAnalysis.CSharp.resources.dll": {
|
||||
"locale": "ja"
|
||||
},
|
||||
"lib/netstandard2.0/ko/Microsoft.CodeAnalysis.CSharp.resources.dll": {
|
||||
"locale": "ko"
|
||||
},
|
||||
"lib/netstandard2.0/pl/Microsoft.CodeAnalysis.CSharp.resources.dll": {
|
||||
"locale": "pl"
|
||||
},
|
||||
"lib/netstandard2.0/pt-BR/Microsoft.CodeAnalysis.CSharp.resources.dll": {
|
||||
"locale": "pt-BR"
|
||||
},
|
||||
"lib/netstandard2.0/ru/Microsoft.CodeAnalysis.CSharp.resources.dll": {
|
||||
"locale": "ru"
|
||||
},
|
||||
"lib/netstandard2.0/tr/Microsoft.CodeAnalysis.CSharp.resources.dll": {
|
||||
"locale": "tr"
|
||||
},
|
||||
"lib/netstandard2.0/zh-Hans/Microsoft.CodeAnalysis.CSharp.resources.dll": {
|
||||
"locale": "zh-Hans"
|
||||
},
|
||||
"lib/netstandard2.0/zh-Hant/Microsoft.CodeAnalysis.CSharp.resources.dll": {
|
||||
"locale": "zh-Hant"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.NETCore.Platforms/1.1.0": {},
|
||||
"NETStandard.Library/2.0.3": {
|
||||
"dependencies": {
|
||||
"Microsoft.NETCore.Platforms": "1.1.0"
|
||||
}
|
||||
},
|
||||
"System.Buffers/4.5.1": {
|
||||
"runtime": {
|
||||
"lib/netstandard2.0/System.Buffers.dll": {
|
||||
"assemblyVersion": "4.0.3.0",
|
||||
"fileVersion": "4.6.28619.1"
|
||||
}
|
||||
}
|
||||
},
|
||||
"System.Collections.Immutable/6.0.0": {
|
||||
"dependencies": {
|
||||
"System.Memory": "4.5.5",
|
||||
"System.Runtime.CompilerServices.Unsafe": "6.0.0"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/netstandard2.0/System.Collections.Immutable.dll": {
|
||||
"assemblyVersion": "6.0.0.0",
|
||||
"fileVersion": "6.0.21.52210"
|
||||
}
|
||||
}
|
||||
},
|
||||
"System.Memory/4.5.5": {
|
||||
"dependencies": {
|
||||
"System.Buffers": "4.5.1",
|
||||
"System.Numerics.Vectors": "4.4.0",
|
||||
"System.Runtime.CompilerServices.Unsafe": "6.0.0"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/netstandard2.0/System.Memory.dll": {
|
||||
"assemblyVersion": "4.0.1.2",
|
||||
"fileVersion": "4.6.31308.1"
|
||||
}
|
||||
}
|
||||
},
|
||||
"System.Numerics.Vectors/4.4.0": {
|
||||
"runtime": {
|
||||
"lib/netstandard2.0/System.Numerics.Vectors.dll": {
|
||||
"assemblyVersion": "4.1.3.0",
|
||||
"fileVersion": "4.6.25519.3"
|
||||
}
|
||||
}
|
||||
},
|
||||
"System.Reflection.Metadata/6.0.1": {
|
||||
"dependencies": {
|
||||
"System.Collections.Immutable": "6.0.0"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/netstandard2.0/System.Reflection.Metadata.dll": {
|
||||
"assemblyVersion": "6.0.0.0",
|
||||
"fileVersion": "6.0.322.12309"
|
||||
}
|
||||
}
|
||||
},
|
||||
"System.Runtime.CompilerServices.Unsafe/6.0.0": {
|
||||
"runtime": {
|
||||
"lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll": {
|
||||
"assemblyVersion": "6.0.0.0",
|
||||
"fileVersion": "6.0.21.52210"
|
||||
}
|
||||
}
|
||||
},
|
||||
"System.Text.Encoding.CodePages/6.0.0": {
|
||||
"dependencies": {
|
||||
"System.Memory": "4.5.5",
|
||||
"System.Runtime.CompilerServices.Unsafe": "6.0.0"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/netstandard2.0/System.Text.Encoding.CodePages.dll": {
|
||||
"assemblyVersion": "6.0.0.0",
|
||||
"fileVersion": "6.0.21.52210"
|
||||
}
|
||||
}
|
||||
},
|
||||
"System.Threading.Tasks.Extensions/4.5.4": {
|
||||
"dependencies": {
|
||||
"System.Runtime.CompilerServices.Unsafe": "6.0.0"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/netstandard2.0/System.Threading.Tasks.Extensions.dll": {
|
||||
"assemblyVersion": "4.2.0.1",
|
||||
"fileVersion": "4.6.28619.1"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"libraries": {
|
||||
"UnityEditorOnlyAnalyzer/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
},
|
||||
"Microsoft.CodeAnalysis.Analyzers/3.3.4": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-AxkxcPR+rheX0SmvpLVIGLhOUXAKG56a64kV9VQZ4y9gR9ZmPXnqZvHJnmwLSwzrEP6junUF11vuc+aqo5r68g==",
|
||||
"path": "microsoft.codeanalysis.analyzers/3.3.4",
|
||||
"hashPath": "microsoft.codeanalysis.analyzers.3.3.4.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.CodeAnalysis.Common/4.5.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-lwAbIZNdnY0SUNoDmZHkVUwLO8UyNnyyh1t/4XsbFxi4Ounb3xszIYZaWhyj5ZjyfcwqwmtMbE7fUTVCqQEIdQ==",
|
||||
"path": "microsoft.codeanalysis.common/4.5.0",
|
||||
"hashPath": "microsoft.codeanalysis.common.4.5.0.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.CodeAnalysis.CSharp/4.5.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-cM59oMKAOxvdv76bdmaKPy5hfj+oR+zxikWoueEB7CwTko7mt9sVKZI8Qxlov0C/LuKEG+WQwifepqL3vuTiBQ==",
|
||||
"path": "microsoft.codeanalysis.csharp/4.5.0",
|
||||
"hashPath": "microsoft.codeanalysis.csharp.4.5.0.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.NETCore.Platforms/1.1.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A==",
|
||||
"path": "microsoft.netcore.platforms/1.1.0",
|
||||
"hashPath": "microsoft.netcore.platforms.1.1.0.nupkg.sha512"
|
||||
},
|
||||
"NETStandard.Library/2.0.3": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-st47PosZSHrjECdjeIzZQbzivYBJFv6P2nv4cj2ypdI204DO+vZ7l5raGMiX4eXMJ53RfOIg+/s4DHVZ54Nu2A==",
|
||||
"path": "netstandard.library/2.0.3",
|
||||
"hashPath": "netstandard.library.2.0.3.nupkg.sha512"
|
||||
},
|
||||
"System.Buffers/4.5.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==",
|
||||
"path": "system.buffers/4.5.1",
|
||||
"hashPath": "system.buffers.4.5.1.nupkg.sha512"
|
||||
},
|
||||
"System.Collections.Immutable/6.0.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-l4zZJ1WU2hqpQQHXz1rvC3etVZN+2DLmQMO79FhOTZHMn8tDRr+WU287sbomD0BETlmKDn0ygUgVy9k5xkkJdA==",
|
||||
"path": "system.collections.immutable/6.0.0",
|
||||
"hashPath": "system.collections.immutable.6.0.0.nupkg.sha512"
|
||||
},
|
||||
"System.Memory/4.5.5": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-XIWiDvKPXaTveaB7HVganDlOCRoj03l+jrwNvcge/t8vhGYKvqV+dMv6G4SAX2NoNmN0wZfVPTAlFwZcZvVOUw==",
|
||||
"path": "system.memory/4.5.5",
|
||||
"hashPath": "system.memory.4.5.5.nupkg.sha512"
|
||||
},
|
||||
"System.Numerics.Vectors/4.4.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-UiLzLW+Lw6HLed1Hcg+8jSRttrbuXv7DANVj0DkL9g6EnnzbL75EB7EWsw5uRbhxd/4YdG8li5XizGWepmG3PQ==",
|
||||
"path": "system.numerics.vectors/4.4.0",
|
||||
"hashPath": "system.numerics.vectors.4.4.0.nupkg.sha512"
|
||||
},
|
||||
"System.Reflection.Metadata/6.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-III/lNMSn0ZRBuM9m5Cgbiho5j81u0FAEagFX5ta2DKbljZ3T0IpD8j+BIiHQPeKqJppWS9bGEp6JnKnWKze0g==",
|
||||
"path": "system.reflection.metadata/6.0.1",
|
||||
"hashPath": "system.reflection.metadata.6.0.1.nupkg.sha512"
|
||||
},
|
||||
"System.Runtime.CompilerServices.Unsafe/6.0.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==",
|
||||
"path": "system.runtime.compilerservices.unsafe/6.0.0",
|
||||
"hashPath": "system.runtime.compilerservices.unsafe.6.0.0.nupkg.sha512"
|
||||
},
|
||||
"System.Text.Encoding.CodePages/6.0.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-ZFCILZuOvtKPauZ/j/swhvw68ZRi9ATCfvGbk1QfydmcXBkIWecWKn/250UH7rahZ5OoDBaiAudJtPvLwzw85A==",
|
||||
"path": "system.text.encoding.codepages/6.0.0",
|
||||
"hashPath": "system.text.encoding.codepages.6.0.0.nupkg.sha512"
|
||||
},
|
||||
"System.Threading.Tasks.Extensions/4.5.4": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-zteT+G8xuGu6mS+mzDzYXbzS7rd3K6Fjb9RiZlYlJPam2/hU7JCBZBVEcywNuR+oZ1ncTvc/cq0faRr3P01OVg==",
|
||||
"path": "system.threading.tasks.extensions/4.5.4",
|
||||
"hashPath": "system.threading.tasks.extensions.4.5.4.nupkg.sha512"
|
||||
}
|
||||
}
|
||||
}
|
||||
Binary file not shown.
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0"?>
|
||||
<doc>
|
||||
<assembly>
|
||||
<name>UnityEditorOnlyAnalyzer</name>
|
||||
</assembly>
|
||||
<members>
|
||||
</members>
|
||||
</doc>
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
// <autogenerated />
|
||||
using System;
|
||||
using System.Reflection;
|
||||
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETStandard,Version=v2.0", FrameworkDisplayName = ".NET Standard 2.0")]
|
||||
+22
@@ -0,0 +1,22 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
using System;
|
||||
using System.Reflection;
|
||||
|
||||
[assembly: System.Reflection.AssemblyCompanyAttribute("UnityEditorOnlyAnalyzer")]
|
||||
[assembly: System.Reflection.AssemblyConfigurationAttribute("Release")]
|
||||
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
|
||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+3f57f648cedeea1d6fcdb384ee3b716fb9ec6b38")]
|
||||
[assembly: System.Reflection.AssemblyProductAttribute("UnityEditorOnlyAnalyzer")]
|
||||
[assembly: System.Reflection.AssemblyTitleAttribute("UnityEditorOnlyAnalyzer")]
|
||||
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
||||
|
||||
// Generated by the MSBuild WriteCodeFragment class.
|
||||
|
||||
+1
@@ -0,0 +1 @@
|
||||
e6393a12ef7d750e9cde3f8543417fb1572de567f7aa7467f6fa38578092253c
|
||||
+16
@@ -0,0 +1,16 @@
|
||||
is_global = true
|
||||
build_property.TargetFramework = netstandard2.0
|
||||
build_property.TargetPlatformMinVersion = 7.0
|
||||
build_property.UsingMicrosoftNETSdkWeb =
|
||||
build_property.ProjectTypeGuids =
|
||||
build_property.InvariantGlobalization =
|
||||
build_property.PlatformNeutralAssembly =
|
||||
build_property.EnforceExtendedAnalyzerRules = true
|
||||
build_property._SupportedPlatformList = Linux,macOS,Windows
|
||||
build_property.RootNamespace = UnityEditorOnlyAnalyzer
|
||||
build_property.ProjectDir = E:\Projects\perfect-world-unity\UnityEditorOnlyAnalyzer\
|
||||
build_property.EnableComHosting =
|
||||
build_property.EnableGeneratedComInterfaceComImportInterop =
|
||||
build_property.CsWinRTUseWindowsUIXamlProjections = false
|
||||
build_property.EffectiveAnalysisLevelStyle =
|
||||
build_property.EnableCodeStyleSeverity =
|
||||
BIN
Binary file not shown.
BIN
Binary file not shown.
+1
@@ -0,0 +1 @@
|
||||
3fc34b92f89c75b4779e8740553e8ef89532076d6c3fabf38ce6b74c9cbc2bc1
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
E:\Projects\perfect-world-unity\UnityEditorOnlyAnalyzer\obj\Release\netstandard2.0\UnityEditorOnlyAnalyzer.csproj.AssemblyReference.cache
|
||||
E:\Projects\perfect-world-unity\UnityEditorOnlyAnalyzer\obj\Release\netstandard2.0\UnityEditorOnlyAnalyzer.GeneratedMSBuildEditorConfig.editorconfig
|
||||
E:\Projects\perfect-world-unity\UnityEditorOnlyAnalyzer\obj\Release\netstandard2.0\UnityEditorOnlyAnalyzer.AssemblyInfoInputs.cache
|
||||
E:\Projects\perfect-world-unity\UnityEditorOnlyAnalyzer\obj\Release\netstandard2.0\UnityEditorOnlyAnalyzer.AssemblyInfo.cs
|
||||
E:\Projects\perfect-world-unity\UnityEditorOnlyAnalyzer\obj\Release\netstandard2.0\UnityEditorOnlyAnalyzer.csproj.CoreCompileInputs.cache
|
||||
E:\Projects\perfect-world-unity\UnityEditorOnlyAnalyzer\bin\Release\netstandard2.0\UnityEditorOnlyAnalyzer.deps.json
|
||||
E:\Projects\perfect-world-unity\UnityEditorOnlyAnalyzer\bin\Release\netstandard2.0\UnityEditorOnlyAnalyzer.dll
|
||||
E:\Projects\perfect-world-unity\UnityEditorOnlyAnalyzer\bin\Release\netstandard2.0\UnityEditorOnlyAnalyzer.pdb
|
||||
E:\Projects\perfect-world-unity\UnityEditorOnlyAnalyzer\bin\Release\netstandard2.0\UnityEditorOnlyAnalyzer.xml
|
||||
E:\Projects\perfect-world-unity\UnityEditorOnlyAnalyzer\obj\Release\netstandard2.0\UnityEditorOnlyAnalyzer.dll
|
||||
E:\Projects\perfect-world-unity\UnityEditorOnlyAnalyzer\obj\Release\netstandard2.0\UnityEditorOnlyAnalyzer.xml
|
||||
E:\Projects\perfect-world-unity\UnityEditorOnlyAnalyzer\obj\Release\netstandard2.0\UnityEditorOnlyAnalyzer.pdb
|
||||
Binary file not shown.
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0"?>
|
||||
<doc>
|
||||
<assembly>
|
||||
<name>UnityEditorOnlyAnalyzer</name>
|
||||
</assembly>
|
||||
<members>
|
||||
</members>
|
||||
</doc>
|
||||
@@ -0,0 +1,86 @@
|
||||
{
|
||||
"format": 1,
|
||||
"restore": {
|
||||
"E:\\Projects\\perfect-world-unity\\UnityEditorOnlyAnalyzer\\UnityEditorOnlyAnalyzer.csproj": {}
|
||||
},
|
||||
"projects": {
|
||||
"E:\\Projects\\perfect-world-unity\\UnityEditorOnlyAnalyzer\\UnityEditorOnlyAnalyzer.csproj": {
|
||||
"version": "1.0.0",
|
||||
"restore": {
|
||||
"projectUniqueName": "E:\\Projects\\perfect-world-unity\\UnityEditorOnlyAnalyzer\\UnityEditorOnlyAnalyzer.csproj",
|
||||
"projectName": "UnityEditorOnlyAnalyzer",
|
||||
"projectPath": "E:\\Projects\\perfect-world-unity\\UnityEditorOnlyAnalyzer\\UnityEditorOnlyAnalyzer.csproj",
|
||||
"packagesPath": "C:\\Users\\BrewPC\\.nuget\\packages\\",
|
||||
"outputPath": "E:\\Projects\\perfect-world-unity\\UnityEditorOnlyAnalyzer\\obj\\",
|
||||
"projectStyle": "PackageReference",
|
||||
"fallbackFolders": [
|
||||
"E:\\VSShare\\NuGetPackages"
|
||||
],
|
||||
"configFilePaths": [
|
||||
"C:\\Users\\BrewPC\\AppData\\Roaming\\NuGet\\NuGet.Config",
|
||||
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config",
|
||||
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
|
||||
],
|
||||
"originalTargetFrameworks": [
|
||||
"netstandard2.0"
|
||||
],
|
||||
"sources": {
|
||||
"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
|
||||
"https://api.nuget.org/v3/index.json": {}
|
||||
},
|
||||
"frameworks": {
|
||||
"netstandard2.0": {
|
||||
"targetAlias": "netstandard2.0",
|
||||
"projectReferences": {}
|
||||
}
|
||||
},
|
||||
"warningProperties": {
|
||||
"warnAsError": [
|
||||
"NU1605"
|
||||
]
|
||||
},
|
||||
"restoreAuditProperties": {
|
||||
"enableAudit": "true",
|
||||
"auditLevel": "low",
|
||||
"auditMode": "direct"
|
||||
},
|
||||
"SdkAnalysisLevel": "9.0.300"
|
||||
},
|
||||
"frameworks": {
|
||||
"netstandard2.0": {
|
||||
"targetAlias": "netstandard2.0",
|
||||
"dependencies": {
|
||||
"Microsoft.CodeAnalysis.Analyzers": {
|
||||
"suppressParent": "All",
|
||||
"target": "Package",
|
||||
"version": "[3.3.4, )"
|
||||
},
|
||||
"Microsoft.CodeAnalysis.CSharp": {
|
||||
"suppressParent": "All",
|
||||
"target": "Package",
|
||||
"version": "[4.5.0, )"
|
||||
},
|
||||
"NETStandard.Library": {
|
||||
"suppressParent": "All",
|
||||
"target": "Package",
|
||||
"version": "[2.0.3, )",
|
||||
"autoReferenced": true
|
||||
}
|
||||
},
|
||||
"imports": [
|
||||
"net461",
|
||||
"net462",
|
||||
"net47",
|
||||
"net471",
|
||||
"net472",
|
||||
"net48",
|
||||
"net481"
|
||||
],
|
||||
"assetTargetFallback": true,
|
||||
"warn": true,
|
||||
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\9.0.306\\RuntimeIdentifierGraph.json"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||||
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||
<RestoreSuccess Condition=" '$(RestoreSuccess)' == '' ">True</RestoreSuccess>
|
||||
<RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
|
||||
<ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile>
|
||||
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot>
|
||||
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\BrewPC\.nuget\packages\;E:\VSShare\NuGetPackages</NuGetPackageFolders>
|
||||
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
|
||||
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">6.14.0</NuGetToolVersion>
|
||||
</PropertyGroup>
|
||||
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||
<SourceRoot Include="C:\Users\BrewPC\.nuget\packages\" />
|
||||
<SourceRoot Include="E:\VSShare\NuGetPackages\" />
|
||||
</ItemGroup>
|
||||
<ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||
<Import Project="$(NuGetPackageRoot)microsoft.codeanalysis.analyzers\3.3.4\buildTransitive\Microsoft.CodeAnalysis.Analyzers.props" Condition="Exists('$(NuGetPackageRoot)microsoft.codeanalysis.analyzers\3.3.4\buildTransitive\Microsoft.CodeAnalysis.Analyzers.props')" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||
<PkgMicrosoft_CodeAnalysis_Analyzers Condition=" '$(PkgMicrosoft_CodeAnalysis_Analyzers)' == '' ">C:\Users\BrewPC\.nuget\packages\microsoft.codeanalysis.analyzers\3.3.4</PkgMicrosoft_CodeAnalysis_Analyzers>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||||
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||
<Import Project="$(NuGetPackageRoot)netstandard.library\2.0.3\build\netstandard2.0\NETStandard.Library.targets" Condition="Exists('$(NuGetPackageRoot)netstandard.library\2.0.3\build\netstandard2.0\NETStandard.Library.targets')" />
|
||||
<Import Project="$(NuGetPackageRoot)microsoft.codeanalysis.analyzers\3.3.4\buildTransitive\Microsoft.CodeAnalysis.Analyzers.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.codeanalysis.analyzers\3.3.4\buildTransitive\Microsoft.CodeAnalysis.Analyzers.targets')" />
|
||||
</ImportGroup>
|
||||
</Project>
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"version": 2,
|
||||
"dgSpecHash": "E83ZNZ9Iojc=",
|
||||
"success": true,
|
||||
"projectFilePath": "E:\\Projects\\perfect-world-unity\\UnityEditorOnlyAnalyzer\\UnityEditorOnlyAnalyzer.csproj",
|
||||
"expectedPackageFiles": [
|
||||
"C:\\Users\\BrewPC\\.nuget\\packages\\microsoft.codeanalysis.analyzers\\3.3.4\\microsoft.codeanalysis.analyzers.3.3.4.nupkg.sha512",
|
||||
"C:\\Users\\BrewPC\\.nuget\\packages\\microsoft.codeanalysis.common\\4.5.0\\microsoft.codeanalysis.common.4.5.0.nupkg.sha512",
|
||||
"C:\\Users\\BrewPC\\.nuget\\packages\\microsoft.codeanalysis.csharp\\4.5.0\\microsoft.codeanalysis.csharp.4.5.0.nupkg.sha512",
|
||||
"C:\\Users\\BrewPC\\.nuget\\packages\\microsoft.netcore.platforms\\1.1.0\\microsoft.netcore.platforms.1.1.0.nupkg.sha512",
|
||||
"C:\\Users\\BrewPC\\.nuget\\packages\\netstandard.library\\2.0.3\\netstandard.library.2.0.3.nupkg.sha512",
|
||||
"C:\\Users\\BrewPC\\.nuget\\packages\\system.buffers\\4.5.1\\system.buffers.4.5.1.nupkg.sha512",
|
||||
"C:\\Users\\BrewPC\\.nuget\\packages\\system.collections.immutable\\6.0.0\\system.collections.immutable.6.0.0.nupkg.sha512",
|
||||
"C:\\Users\\BrewPC\\.nuget\\packages\\system.memory\\4.5.5\\system.memory.4.5.5.nupkg.sha512",
|
||||
"C:\\Users\\BrewPC\\.nuget\\packages\\system.numerics.vectors\\4.4.0\\system.numerics.vectors.4.4.0.nupkg.sha512",
|
||||
"C:\\Users\\BrewPC\\.nuget\\packages\\system.reflection.metadata\\6.0.1\\system.reflection.metadata.6.0.1.nupkg.sha512",
|
||||
"C:\\Users\\BrewPC\\.nuget\\packages\\system.runtime.compilerservices.unsafe\\6.0.0\\system.runtime.compilerservices.unsafe.6.0.0.nupkg.sha512",
|
||||
"C:\\Users\\BrewPC\\.nuget\\packages\\system.text.encoding.codepages\\6.0.0\\system.text.encoding.codepages.6.0.0.nupkg.sha512",
|
||||
"C:\\Users\\BrewPC\\.nuget\\packages\\system.threading.tasks.extensions\\4.5.4\\system.threading.tasks.extensions.4.5.4.nupkg.sha512"
|
||||
],
|
||||
"logs": []
|
||||
}
|
||||
Reference in New Issue
Block a user