D:删除构建文件,增加调试脚本

This commit is contained in:
jimmy committed 2025-12-29 10:08:26 +08:00
1 parent 3b89b2d722
commit d133bacf55
40 files changed
+1180 -1066

No files matched your search

+16
View File
@@ -0,0 +1,16 @@
{
"permissions": {
"allow": [
"Bash(dir:*)",
"Bash(cd:*)",
"Bash(grep:*)",
"Bash(dotnet sln:*)",
"Bash(dotnet build:*)",
"Bash(dotnet restore:*)",
"Bash(dotnet list:*)",
"Bash(dotnet new:*)",
"Bash(rm:*)",
"Bash(findstr:*)"
]
}
}
+394
View File
@@ -0,0 +1,394 @@
# Sharp.Process & Sharp.Python 使用示例
## 示例1:在 WPF 应用中使用
### 注册服务(App.xaml.cs)
```csharp
using Microsoft.Extensions.DependencyInjection;
using Sharp.Process.DependencyInjection;
using Sharp.Python.DependencyInjection;
protected override void OnStartup(StartupEventArgs e)
{
var services = new ServiceCollection();
// 注册日志
services.AddLogging(builder => {
builder.AddConsole();
builder.AddDebug();
});
// 注册 Process 和 Python 服务
services.AddSharpProcess();
services.AddSharpPython(options => {
options.DefaultVirtualEnvPath = @"C:\MyProject\.venv";
options.AutoLogOutputByDefault = true;
});
// 注册 ViewModel
services.AddTransient<MainViewModel>();
services.AddTransient<MainWindow>();
var provider = services.BuildServiceProvider();
provider.GetRequiredService<MainWindow>().Show();
}
```
### ViewModel 示例
```csharp
using Sharp.Process;
using Sharp.Python;
public class MainViewModel : ViewModelBase
{
private readonly IPythonExecutor _python;
private readonly ILogger<MainViewModel> _logger;
private string _output = "";
public string Output
{
get => _output;
set => SetProperty(ref _output, value);
}
public MainViewModel(IPythonExecutor python, ILogger<MainViewModel> logger)
{
_python = python;
_logger = logger;
RunPythonCommand = new AsyncCommand(ExecutePythonScriptAsync);
}
public IAsyncCommand RunPythonCommand { get; }
private async Task ExecutePythonScriptAsync()
{
IsBusy = true;
Output = "";
try
{
var result = await _python.RunScriptAsync(
@"C:\Scripts\data_processor.py",
new {
input_file = "data.csv",
output_dir = "results",
batch_size = 32
},
new PythonOptions
{
OnOutputReceived = line => {
_dispatcher.Invoke(() => {
Output += $"{DateTime.Now:HH:mm:ss} - {line}\n";
});
}
}
);
if (result.IsSuccess)
{
_dialogService.ShowMessage("处理完成!", "成功");
}
else
{
var error = result.ErrorMessage ?? "未知错误";
_dialogService.ShowError($"处理失败: {error}", "错误");
}
}
catch (Exception ex)
{
_logger.LogError(ex, "执行 Python 脚本失败");
_dialogService.ShowError($"执行失败: {ex.Message}", "错误");
}
finally
{
IsBusy = false;
}
}
}
```
## 示例2:调用任意命令行工具
```csharp
using Sharp.Process;
public class BuildService
{
private readonly IProcessExecutor _process;
private readonly ILogger<BuildService> _logger;
public BuildService(IProcessExecutor process, ILogger<BuildService> logger)
{
_process = process;
_logger = logger;
}
// 执行 dotnet build
public async Task<bool> BuildProjectAsync(string projectPath)
{
var result = await _process.CreateBuilder()
.WithCommand("dotnet", "build", projectPath)
.WithWorkingDirectory(Path.GetDirectoryName(projectPath))
.OnOutputReceived(line => _logger.LogInformation("[Build] {Line}", line))
.OnErrorReceived(line => _logger.LogWarning("[Build] {Error}", line))
.WithTimeout(TimeSpan.FromMinutes(10))
.ExecuteAsync();
return result.IsSuccess && result.Value.ExitCode == 0;
}
// 执行 Git 命令
public async Task<string?> GetGitBranchAsync(string repoPath)
{
var result = await _process.CreateBuilder()
.WithCommand("git", "branch", "--show-current")
.WithWorkingDirectory(repoPath)
.ExecuteAsync();
if (result.IsSuccess)
{
return result.Value.StandardOutput.Trim();
}
return null;
}
// 执行 ffmpeg 视频转换
public async Task<bool> ConvertVideoAsync(string inputPath, string outputPath)
{
var result = await _process.CreateBuilder()
.WithCommand("ffmpeg")
.WithArgument("-i").WithArgument(inputPath)
.WithArgument(outputPath)
.WithTimeout(TimeSpan.FromHours(1))
.OnOutputReceived(line => {
// 解析 ffmpeg 进度输出
if (line.Contains("time="))
{
_logger.LogInformation("转换进度: {Line}", line);
}
})
.ExecuteAsync();
return result.IsSuccess && result.Value.ExitCode == 0;
}
}
```
## 示例3:AI 模型推理服务
```csharp
using Sharp.Python;
public class ImageClassificationService
{
private readonly IPythonExecutor _python;
private readonly ILogger<ImageClassificationService> _logger;
public ImageClassificationService(IPythonExecutor python, ILogger<ImageClassificationService> logger)
{
_python = python;
_logger = logger;
}
public async Task<ClassificationResult?> ClassifyAsync(string imagePath)
{
_logger.LogInformation("开始分类图片: {ImagePath}", imagePath);
var result = await _python.RunScriptAsync<ClassificationResult>(
@"C:\AI\models\classify.py",
new {
image_path = imagePath,
model = "resnet50",
top_k = 5
},
new PythonOptions
{
VirtualEnvPath = @"C:\AI\models\.venv",
Timeout = TimeSpan.FromMinutes(2),
OnOutputReceived = line => _logger.LogDebug("[Python] {Line}", line)
}
);
if (result.IsSuccess)
{
_logger.LogInformation("分类成功: {Label} (置信度: {Confidence})",
result.Value.Label, result.Value.Confidence);
return result.Value;
}
else
{
_logger.LogError("分类失败: {Error}", result.ErrorMessage);
return null;
}
}
}
public class ClassificationResult
{
public string Label { get; set; } = "";
public double Confidence { get; set; }
public List<string> TopLabels { get; set; } = new();
}
```
对应的 Python 脚本 (`classify.py`):
```python
import argparse
import json
import sys
from PIL import Image
import torch
from torchvision import models, transforms
def classify_image(image_path, model_name, top_k):
# 加载模型
print(f"加载模型: {model_name}", file=sys.stderr)
model = models.resnet50(pretrained=True)
model.eval()
# 预处理
preprocess = transforms.Compose([
transforms.Resize(256),
transforms.CenterCrop(224),
transforms.ToTensor(),
transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]),
])
# 加载图片
print(f"处理图片: {image_path}", file=sys.stderr)
image = Image.open(image_path)
input_tensor = preprocess(image)
input_batch = input_tensor.unsqueeze(0)
# 推理
with torch.no_grad():
output = model(input_batch)
# 解析结果
probabilities = torch.nn.functional.softmax(output[0], dim=0)
top_prob, top_catid = torch.topk(probabilities, top_k)
# 输出 JSON(只输出到 stdout)
result = {
"label": f"class_{top_catid[0].item()}",
"confidence": top_prob[0].item(),
"topLabels": [f"class_{catid.item()}" for catid in top_catid]
}
print(json.dumps(result))
if __name__ == '__main__':
parser = argparse.ArgumentParser()
parser.add_argument('--image-path', required=True)
parser.add_argument('--model', default='resnet50')
parser.add_argument('--top-k', type=int, default=5)
args = parser.parse_args()
classify_image(args.image_path, args.model, args.top_k)
```
## 示例4:批量数据处理
```csharp
using Sharp.Python;
public class DataProcessingService
{
private readonly IPythonExecutor _python;
public async Task<bool> ProcessAllCsvFilesAsync(string directory)
{
var csvFiles = Directory.GetFiles(directory, "*.csv");
foreach (var file in csvFiles)
{
var result = await _python.RunScriptAsync(
"process_csv.py",
new {
input = file,
output = file.Replace(".csv", "_processed.csv"),
remove_duplicates = true,
normalize = true
}
);
if (!result.IsSuccess)
{
return false;
}
}
return true;
}
}
```
## 测试建议
### 简单测试脚本(test.py)
```python
import sys
import json
import argparse
def main():
parser = argparse.ArgumentParser()
parser.add_argument('--name', default='World')
parser.add_argument('--count', type=int, default=1)
args = parser.parse_args()
# 日志输出到 stderr
print(f"参数: name={args.name}, count={args.count}", file=sys.stderr)
# 处理
for i in range(args.count):
print(f"Hello, {args.name}! ({i+1})", file=sys.stderr)
# 结果输出到 stdout(JSON)
result = {
"message": f"Greeted {args.name} {args.count} times",
"success": True
}
print(json.dumps(result))
if __name__ == '__main__':
main()
```
### C# 测试代码
```csharp
// 测试基本调用
var result = await _python.RunScriptAsync("test.py", new {
name = "Sharp",
count = 3
});
if (result.IsSuccess)
{
Console.WriteLine(result.Value.StandardOutput);
}
// 测试 JSON 解析
public class TestResult
{
public string Message { get; set; } = "";
public bool Success { get; set; }
}
var jsonResult = await _python.RunScriptAsync<TestResult>("test.py", new {
name = "Sharp",
count = 5
});
if (jsonResult.IsSuccess)
{
Console.WriteLine(jsonResult.Value.Message);
}
```
@@ -1,4 +0,0 @@
// <autogenerated />
using System;
using System.Reflection;
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v8.0", FrameworkDisplayName = ".NET 8.0")]
@@ -1,70 +0,0 @@
#pragma checksum "..\..\..\App.xaml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "E3F9FFB46D71276D1887DE3B3CD38133E8717023"
//------------------------------------------------------------------------------
// <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.Diagnostics;
using System.Windows;
using System.Windows.Automation;
using System.Windows.Controls;
using System.Windows.Controls.Primitives;
using System.Windows.Controls.Ribbon;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Markup;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Media.Effects;
using System.Windows.Media.Imaging;
using System.Windows.Media.Media3D;
using System.Windows.Media.TextFormatting;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Windows.Shell;
using Wpf;
namespace Wpf {
/// <summary>
/// App
/// </summary>
public partial class App : System.Windows.Application {
/// <summary>
/// InitializeComponent
/// </summary>
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "9.0.4.0")]
public void InitializeComponent() {
#line 5 "..\..\..\App.xaml"
this.StartupUri = new System.Uri("MainWindow.xaml", System.UriKind.Relative);
#line default
#line hidden
}
/// <summary>
/// Application Entry Point.
/// </summary>
[System.STAThreadAttribute()]
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "9.0.4.0")]
public static void Main() {
Wpf.App app = new Wpf.App();
app.InitializeComponent();
app.Run();
}
}
}
@@ -1,71 +0,0 @@
#pragma checksum "..\..\..\App.xaml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "E3F9FFB46D71276D1887DE3B3CD38133E8717023"
//------------------------------------------------------------------------------
// <auto-generated>
// 此代码由工具生成。
// 运行时版本:4.0.30319.42000
//
// 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Diagnostics;
using System.Windows;
using System.Windows.Automation;
using System.Windows.Controls;
using System.Windows.Controls.Primitives;
using System.Windows.Controls.Ribbon;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Markup;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Media.Effects;
using System.Windows.Media.Imaging;
using System.Windows.Media.Media3D;
using System.Windows.Media.TextFormatting;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Windows.Shell;
using Wpf;
namespace Wpf {
/// <summary>
/// App
/// </summary>
public partial class App : System.Windows.Application {
/// <summary>
/// InitializeComponent
/// </summary>
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "9.0.4.0")]
public void InitializeComponent() {
#line 5 "..\..\..\App.xaml"
this.StartupUri = new System.Uri("MainWindow.xaml", System.UriKind.Relative);
#line default
#line hidden
}
/// <summary>
/// Application Entry Point.
/// </summary>
[System.STAThreadAttribute()]
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "9.0.4.0")]
public static void Main() {
Wpf.App app = new Wpf.App();
app.InitializeComponent();
app.Run();
}
}
}
@@ -1,75 +0,0 @@
#pragma checksum "..\..\..\MainWindow.xaml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "E11B1709F73A671EB1F1804D276CA5E1F763BAD3"
//------------------------------------------------------------------------------
// <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.Diagnostics;
using System.Windows;
using System.Windows.Automation;
using System.Windows.Controls;
using System.Windows.Controls.Primitives;
using System.Windows.Controls.Ribbon;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Markup;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Media.Effects;
using System.Windows.Media.Imaging;
using System.Windows.Media.Media3D;
using System.Windows.Media.TextFormatting;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Windows.Shell;
using Wpf;
namespace Wpf {
/// <summary>
/// MainWindow
/// </summary>
public partial class MainWindow : System.Windows.Window, System.Windows.Markup.IComponentConnector {
private bool _contentLoaded;
/// <summary>
/// InitializeComponent
/// </summary>
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "9.0.4.0")]
public void InitializeComponent() {
if (_contentLoaded) {
return;
}
_contentLoaded = true;
System.Uri resourceLocater = new System.Uri("/Wpf;component/mainwindow.xaml", System.UriKind.Relative);
#line 1 "..\..\..\MainWindow.xaml"
System.Windows.Application.LoadComponent(this, resourceLocater);
#line default
#line hidden
}
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "9.0.4.0")]
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily")]
void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) {
this._contentLoaded = true;
}
}
}
@@ -1,76 +0,0 @@
#pragma checksum "..\..\..\MainWindow.xaml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "E11B1709F73A671EB1F1804D276CA5E1F763BAD3"
//------------------------------------------------------------------------------
// <auto-generated>
// 此代码由工具生成。
// 运行时版本:4.0.30319.42000
//
// 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Diagnostics;
using System.Windows;
using System.Windows.Automation;
using System.Windows.Controls;
using System.Windows.Controls.Primitives;
using System.Windows.Controls.Ribbon;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Markup;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Media.Effects;
using System.Windows.Media.Imaging;
using System.Windows.Media.Media3D;
using System.Windows.Media.TextFormatting;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Windows.Shell;
using Wpf;
namespace Wpf {
/// <summary>
/// MainWindow
/// </summary>
public partial class MainWindow : System.Windows.Window, System.Windows.Markup.IComponentConnector {
private bool _contentLoaded;
/// <summary>
/// InitializeComponent
/// </summary>
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "9.0.4.0")]
public void InitializeComponent() {
if (_contentLoaded) {
return;
}
_contentLoaded = true;
System.Uri resourceLocater = new System.Uri("/Wpf;V1.0.0.0;component/mainwindow.xaml", System.UriKind.Relative);
#line 1 "..\..\..\MainWindow.xaml"
System.Windows.Application.LoadComponent(this, resourceLocater);
#line default
#line hidden
}
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "9.0.4.0")]
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily")]
void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) {
this._contentLoaded = true;
}
}
}
@@ -1,24 +0,0 @@
//------------------------------------------------------------------------------
// <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("Sharp.Wpf")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+433e206d456d0ef3b2fc57c458ff3fc030643be6")]
[assembly: System.Reflection.AssemblyProductAttribute("Sharp.Wpf")]
[assembly: System.Reflection.AssemblyTitleAttribute("Sharp.Wpf")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
[assembly: System.Runtime.Versioning.TargetPlatformAttribute("Windows7.0")]
[assembly: System.Runtime.Versioning.SupportedOSPlatformAttribute("Windows7.0")]
// 由 MSBuild WriteCodeFragment 类生成。
@@ -1 +0,0 @@
cd23ae979f4410b7a90bcdab8832e81e422253dc2d502d88544f9372c3b0bd4d
@@ -1,24 +0,0 @@
is_global = true
build_property.ApplicationManifest =
build_property.StartupObject =
build_property.ApplicationDefaultFont =
build_property.ApplicationHighDpiMode =
build_property.ApplicationUseCompatibleTextRendering =
build_property.ApplicationVisualStyles =
build_property.TargetFramework = net8.0-windows
build_property.TargetFrameworkIdentifier = .NETCoreApp
build_property.TargetFrameworkVersion = v8.0
build_property.TargetPlatformMinVersion = 7.0
build_property.UsingMicrosoftNETSdkWeb =
build_property.ProjectTypeGuids =
build_property.InvariantGlobalization =
build_property.PlatformNeutralAssembly =
build_property.EnforceExtendedAnalyzerRules =
build_property._SupportedPlatformList = Linux,macOS,Windows
build_property.RootNamespace = Sharp.Wpf
build_property.ProjectDir = D:\code\sharp-basic\src\Sharp\Wpf\
build_property.EnableComHosting =
build_property.EnableGeneratedComInterfaceComImportInterop =
build_property.CsWinRTUseWindowsUIXamlProjections = false
build_property.EffectiveAnalysisLevelStyle = 8.0
build_property.EnableCodeStyleSeverity =
@@ -1,8 +0,0 @@
// <auto-generated/>
global using System;
global using System.Collections.Generic;
global using System.Drawing;
global using System.Linq;
global using System.Threading;
global using System.Threading.Tasks;
global using System.Windows.Forms;
@@ -1,11 +0,0 @@
{
"runtimeTarget": {
"name": ".NETCoreApp,Version=v8.0",
"signature": ""
},
"compilationOptions": {},
"targets": {
".NETCoreApp,Version=v8.0": {}
},
"libraries": {}
}
@@ -1,25 +0,0 @@
{
"runtimeOptions": {
"tfm": "net8.0",
"frameworks": [
{
"name": "Microsoft.NETCore.App",
"version": "8.0.0"
},
{
"name": "Microsoft.WindowsDesktop.App",
"version": "8.0.0"
}
],
"additionalProbingPaths": [
"C:\\Users\\yllyo\\.dotnet\\store\\|arch|\\|tfm|",
"C:\\Users\\yllyo\\.nuget\\packages",
"D:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
],
"configProperties": {
"System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": true,
"CSWINRT_USE_WINDOWS_UI_XAML_PROJECTIONS": false,
"Microsoft.NETCore.DotNetHostPolicy.SetAppPaths": true
}
}
}
@@ -1,20 +0,0 @@
Wpf
winexe
C#
.cs
D:\yuanll\sharp-basic\src\Sharp\Wpf\obj\Debug\net8.0-windows\
Wpf
none
false
TRACE;DEBUG;NET;NET8_0;NETCOREAPP
D:\yuanll\sharp-basic\src\Sharp\Wpf\App.xaml
11407045341
41779921481
198-211836927
MainWindow.xaml;
True
@@ -1,20 +0,0 @@
Wpf
1.0.0.0
winexe
C#
.cs
D:\yuanll\sharp-basic\src\Sharp\Wpf\obj\Debug\net8.0-windows\
Wpf
none
false
TRACE;DEBUG;NET;NET8_0;NETCOREAPP;WINDOWS;WINDOWS7_0;NET5_0_OR_GREATER;NET6_0_OR_GREATER;NET7_0_OR_GREATER;NET8_0_OR_GREATER;NETCOREAPP3_0_OR_GREATER;NETCOREAPP3_1_OR_GREATER;WINDOWS7_0_OR_GREATER
D:\yuanll\sharp-basic\src\Sharp\Wpf\App.xaml
11407045341
61117646960
198-211836927
MainWindow.xaml;
False
@@ -1,4 +0,0 @@
FD:\yuanll\sharp-basic\src\Sharp\Wpf\MainWindow.xaml;;
@@ -1,82 +0,0 @@
{
"format": 1,
"restore": {
"D:\\code\\sharp-basic\\src\\Sharp\\Wpf\\Wpf.csproj": {}
},
"projects": {
"D:\\code\\sharp-basic\\src\\Sharp\\Wpf\\Wpf.csproj": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "D:\\code\\sharp-basic\\src\\Sharp\\Wpf\\Wpf.csproj",
"projectName": "Sharp.Wpf",
"projectPath": "D:\\code\\sharp-basic\\src\\Sharp\\Wpf\\Wpf.csproj",
"packagesPath": "C:\\Users\\Administrator\\.nuget\\packages\\",
"outputPath": "D:\\code\\sharp-basic\\src\\Sharp\\Wpf\\obj\\",
"projectStyle": "PackageReference",
"fallbackFolders": [
"D:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
],
"configFilePaths": [
"C:\\Users\\Administrator\\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": [
"net8.0-windows"
],
"sources": {
"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
"https://api.nuget.org/v3/index.json": {}
},
"frameworks": {
"net8.0-windows7.0": {
"targetAlias": "net8.0-windows",
"projectReferences": {}
}
},
"warningProperties": {
"warnAsError": [
"NU1605"
]
},
"restoreAuditProperties": {
"enableAudit": "true",
"auditLevel": "low",
"auditMode": "direct"
},
"SdkAnalysisLevel": "10.0.100"
},
"frameworks": {
"net8.0-windows7.0": {
"targetAlias": "net8.0-windows",
"dependencies": {
"Microsoft.Extensions.DependencyInjection.Abstractions": {
"target": "Package",
"version": "[9.0.0, )"
}
},
"imports": [
"net461",
"net462",
"net47",
"net471",
"net472",
"net48",
"net481"
],
"assetTargetFallback": true,
"warn": true,
"frameworkReferences": {
"Microsoft.NETCore.App": {
"privateAssets": "all"
},
"Microsoft.WindowsDesktop.App": {
"privateAssets": "none"
}
},
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\10.0.100/PortableRuntimeIdentifierGraph.json"
}
}
}
}
}
@@ -1,16 +0,0 @@
<?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\Administrator\.nuget\packages\;D:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages</NuGetPackageFolders>
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">7.0.0</NuGetToolVersion>
</PropertyGroup>
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<SourceRoot Include="C:\Users\Administrator\.nuget\packages\" />
<SourceRoot Include="D:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages\" />
</ItemGroup>
</Project>
@@ -1,2 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" />
-138
View File
@@ -1,138 +0,0 @@
{
"version": 3,
"targets": {
"net8.0-windows7.0": {
"Microsoft.Extensions.DependencyInjection.Abstractions/9.0.0": {
"type": "package",
"compile": {
"lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": {
"related": ".xml"
}
},
"build": {
"buildTransitive/net8.0/_._": {}
}
}
}
},
"libraries": {
"Microsoft.Extensions.DependencyInjection.Abstractions/9.0.0": {
"sha512": "+6f2qv2a3dLwd5w6JanPIPs47CxRbnk+ZocMJUhv9NxP88VlOcJYZs9jY+MYSjxvady08bUZn6qgiNh7DadGgg==",
"type": "package",
"path": "microsoft.extensions.dependencyinjection.abstractions/9.0.0",
"files": [
".nupkg.metadata",
".signature.p7s",
"Icon.png",
"LICENSE.TXT",
"PACKAGE.md",
"THIRD-PARTY-NOTICES.TXT",
"buildTransitive/net461/Microsoft.Extensions.DependencyInjection.Abstractions.targets",
"buildTransitive/net462/_._",
"buildTransitive/net8.0/_._",
"buildTransitive/netcoreapp2.0/Microsoft.Extensions.DependencyInjection.Abstractions.targets",
"lib/net462/Microsoft.Extensions.DependencyInjection.Abstractions.dll",
"lib/net462/Microsoft.Extensions.DependencyInjection.Abstractions.xml",
"lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll",
"lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml",
"lib/net9.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll",
"lib/net9.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml",
"lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll",
"lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml",
"lib/netstandard2.1/Microsoft.Extensions.DependencyInjection.Abstractions.dll",
"lib/netstandard2.1/Microsoft.Extensions.DependencyInjection.Abstractions.xml",
"microsoft.extensions.dependencyinjection.abstractions.9.0.0.nupkg.sha512",
"microsoft.extensions.dependencyinjection.abstractions.nuspec",
"useSharedDesignerContext.txt"
]
}
},
"projectFileDependencyGroups": {
"net8.0-windows7.0": [
"Microsoft.Extensions.DependencyInjection.Abstractions >= 9.0.0"
]
},
"packageFolders": {
"C:\\Users\\Administrator\\.nuget\\packages\\": {},
"D:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages": {}
},
"project": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "D:\\code\\sharp-basic\\src\\Sharp\\Wpf\\Wpf.csproj",
"projectName": "Sharp.Wpf",
"projectPath": "D:\\code\\sharp-basic\\src\\Sharp\\Wpf\\Wpf.csproj",
"packagesPath": "C:\\Users\\Administrator\\.nuget\\packages\\",
"outputPath": "D:\\code\\sharp-basic\\src\\Sharp\\Wpf\\obj\\",
"projectStyle": "PackageReference",
"fallbackFolders": [
"D:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
],
"configFilePaths": [
"C:\\Users\\Administrator\\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": [
"net8.0-windows"
],
"sources": {
"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
"https://api.nuget.org/v3/index.json": {}
},
"frameworks": {
"net8.0-windows7.0": {
"targetAlias": "net8.0-windows",
"projectReferences": {}
}
},
"warningProperties": {
"warnAsError": [
"NU1605"
]
},
"restoreAuditProperties": {
"enableAudit": "true",
"auditLevel": "low",
"auditMode": "direct"
},
"SdkAnalysisLevel": "10.0.100"
},
"frameworks": {
"net8.0-windows7.0": {
"targetAlias": "net8.0-windows",
"dependencies": {
"Microsoft.Extensions.DependencyInjection.Abstractions": {
"target": "Package",
"version": "[9.0.0, )"
}
},
"imports": [
"net461",
"net462",
"net47",
"net471",
"net472",
"net48",
"net481"
],
"assetTargetFallback": true,
"warn": true,
"frameworkReferences": {
"Microsoft.NETCore.App": {
"privateAssets": "all"
},
"Microsoft.WindowsDesktop.App": {
"privateAssets": "none"
}
},
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\10.0.100/PortableRuntimeIdentifierGraph.json"
}
}
}
}
-10
View File
@@ -1,10 +0,0 @@
{
"version": 2,
"dgSpecHash": "zqaFYIDtlpU=",
"success": true,
"projectFilePath": "D:\\code\\sharp-basic\\src\\Sharp\\Wpf\\Wpf.csproj",
"expectedPackageFiles": [
"C:\\Users\\Administrator\\.nuget\\packages\\microsoft.extensions.dependencyinjection.abstractions\\9.0.0\\microsoft.extensions.dependencyinjection.abstractions.9.0.0.nupkg.sha512"
],
"logs": []
}
@@ -1 +0,0 @@
"restore":{"projectUniqueName":"D:\\code\\sharp-basic\\src\\Sharp\\Wpf\\Wpf.csproj","projectName":"Sharp.Wpf","projectPath":"D:\\code\\sharp-basic\\src\\Sharp\\Wpf\\Wpf.csproj","outputPath":"D:\\code\\sharp-basic\\src\\Sharp\\Wpf\\obj\\","projectStyle":"PackageReference","fallbackFolders":["D:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"],"originalTargetFrameworks":["net8.0-windows"],"sources":{"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\":{},"https://api.nuget.org/v3/index.json":{}},"frameworks":{"net8.0-windows7.0":{"targetAlias":"net8.0-windows","projectReferences":{}}},"warningProperties":{"warnAsError":["NU1605"]},"restoreAuditProperties":{"enableAudit":"true","auditLevel":"low","auditMode":"direct"},"SdkAnalysisLevel":"10.0.100"}"frameworks":{"net8.0-windows7.0":{"targetAlias":"net8.0-windows","dependencies":{"Microsoft.Extensions.DependencyInjection.Abstractions":{"target":"Package","version":"[9.0.0, )"}},"imports":["net461","net462","net47","net471","net472","net48","net481"],"assetTargetFallback":true,"warn":true,"frameworkReferences":{"Microsoft.NETCore.App":{"privateAssets":"all"},"Microsoft.WindowsDesktop.App":{"privateAssets":"none"}},"runtimeIdentifierGraphPath":"C:\\Program Files\\dotnet\\sdk\\10.0.100/PortableRuntimeIdentifierGraph.json"}}
@@ -1 +0,0 @@
17654362814006268
@@ -1 +0,0 @@
17657764918263100