Commit 1ff33071 by zhoujinhui

新增api项目

parent ec923d7c
using System;
using System.Collections.Generic;
using System.Text;
namespace Bailun.DC.Models.Common
{
/// <summary>
/// Api返回参数
/// </summary>
/// <typeparam name="T"></typeparam>
public class CommonApiResponseDto<T>
{
/// <summary>
/// 指示是否成功
/// </summary>
public bool IsSuccess { get; set; }
/// <summary>
/// 返回的业务数据
/// </summary>
public T Data { get; set; }
/// <summary>
/// 消息
/// </summary>
public string Message { get; set; }
/// <summary>
/// HTTP状态码
/// </summary>
public int Code { get; set; }
}
}
var baseUrl = 'http://data.bailuntec.com'; //'http://localhost:59628/';//
//var baseUrl = 'http://data.bailuntec.com'; //'http://localhost:59628/';//
var baseUrl = 'http://localhost:53989';
var globalOrderSort='';
var globalOrderType = '';
var global_userid;
......
using Bailun.ServiceFabric.Core.Extension;
using Bailun.ServiceFabric.Core.Extension.HttpContext;
using Bailun.ServiceFabric.Extension;
using Microsoft.AspNetCore.Mvc.Filters;
using Newtonsoft.Json;
using System;
using System.Net;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
namespace Bailun.DC.WebApi.Attribute
{
public class BrowseLogAttribute : ActionFilterAttribute
{
/// <summary>
/// 项目id
/// </summary>
private readonly string _projectCode;
/// <summary>
/// 模块名称
/// </summary>
private readonly string _moduleName;
/// <summary>
/// 备注信息
/// </summary>
private readonly string _remark;
/// <summary>
/// 操作类型 (0查、1增、2删、3修改)
/// </summary>
private readonly int _operationType;
/// <summary>
/// 此特性负责写浏览日志
/// </summary>
/// <param name="projectId">项目id</param>
/// <param name="moduleName">模块名称</param>
/// <param name="operationType">操作类型 (0查、1增、2删、3修改)</param>
/// <param name="remark">备注信息</param>
public BrowseLogAttribute(string projectCode, string moduleName, int operationType, string remark = "")
{
_projectCode = projectCode;
_moduleName = moduleName;
_operationType = operationType;
_remark = remark;
}
public override void OnActionExecuted(ActionExecutedContext context)
{
try
{
string canLogValue = ConfigManagerConf.GetValue("BrowseLogSetting:CanLog");
if (canLogValue != "yes")
{
return;
}
var userId = HttpContextHelper.Current?.User?.GetUid();
var userName = HttpContextHelper.Current?.User?.GetUserName();
var companyId = HttpContextHelper.Current?.User?.GetCompanyId();
// 执行结果
var isSuccessed = true;
// 执行失败的信息
var execFaildMsg = "";
if (context.Exception != null && context.Result == null)
{
// 方法执行失败 有异常
isSuccessed = false;
execFaildMsg = context.Exception.Message;
}
// 组装写日志的入参
var input = new AddOperationLogInfoInput
{
UserId = (int)userId,
UserName = userName,
ProjectCode = _projectCode,
OperationType = _operationType,
OperationContent = _moduleName,
OperationTime = DateTime.Now,
IsSuccessed = isSuccessed,
FailInfo = execFaildMsg,
Remarks = _remark,
CompanyId = companyId
};
var url = ConfigManagerConf.GetValue("BrowseLogSetting:Url");
var logRes = PostAsync<AddOperationLogInfoInput, AddOperationLogInfoOutput>(url, input);
if (logRes.StatusCode != 200)
{
Console.WriteLine($"写浏览日志失败:{logRes.Message}");
}
}
catch (Exception e)
{
Console.WriteLine(e);
}
}
/// <summary>
/// HttpClient实现Post请求
/// </summary>
/// <typeparam name="T1">传入对象类型</typeparam>
/// <typeparam name="T2">返回对象类型</typeparam>
/// <param name="url"></param>
/// <param name="content"></param>
/// <returns></returns>
public static T2 PostAsync<T1, T2>(string url, T1 content) where T2 : new()
{
if (string.IsNullOrWhiteSpace(url) || content == null)
{
return new T2();
}
try
{
//设置内容压缩
var handler = new HttpClientHandler() { AutomaticDecompression = DecompressionMethods.GZip };
using (var client = new HttpClient(handler))
{
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var postDataJson = JsonConvert.SerializeObject(content, new JsonSerializerSettings()
{
ReferenceLoopHandling = ReferenceLoopHandling.Ignore,
NullValueHandling = NullValueHandling.Ignore
});
var response = client.PostAsync(url, new StringContent(postDataJson, Encoding.UTF8, "application/json")).Result;
//var response = client.PostAsJsonAsync<T1>(url, content).Result;
if (response.IsSuccessStatusCode)
{
var reponseResult = response.Content.ReadAsStringAsync().Result;
var result = JsonConvert.DeserializeObject<T2>(reponseResult, new JsonSerializerSettings()
{
ReferenceLoopHandling = ReferenceLoopHandling.Ignore,
NullValueHandling = NullValueHandling.Ignore
});
return result;
}
return JsonConvert.DeserializeObject<T2>(null, new JsonSerializerSettings()
{
ReferenceLoopHandling = ReferenceLoopHandling.Ignore,
NullValueHandling = NullValueHandling.Ignore
});
//return new T2() { Message = "HTTP响应失败", };
}
}
catch (Exception ex)
{
throw ex;
}
}
public class AddOperationLogInfoOutput
{
/// <summary>
/// 信息
/// </summary>
[JsonProperty("message")]
public string Message { get; set; }
/// <summary>
/// 结果
/// </summary>
[JsonProperty("result")]
public object Result { get; set; }
/// <summary>
/// 状态码
/// </summary>
[JsonProperty("statusCode")]
public int StatusCode { get; set; }
}
public class AddOperationLogInfoInput
{
/// <summary>
///
/// </summary>
public int UserId { get; set; }
/// <summary>
/// 系统id
/// </summary>
public int ProjectId { get; set; }
/// <summary>
/// 系统代码
/// </summary>
public string ProjectCode { get; set; }
/// <summary>
///
/// </summary>
public string UserName { get; set; }
/// <summary>
/// 公司id
/// </summary>
public string CompanyId { get; set; }
/// <summary>
/// 操作类型(0查、1增、2删、3修改)
/// </summary>
public int OperationType { get; set; }
/// <summary>
/// 操作内容
/// </summary>
public string OperationContent { get; set; }
/// <summary>
/// 操作时间
/// </summary>
public DateTime OperationTime { get; set; } = DateTime.Now;
/// <summary>
/// 是否操作成功
/// </summary>
public bool IsSuccessed { get; set; }
/// <summary>
/// 失败原因
/// </summary>
public string FailInfo { get; set; }
/// <summary>
/// 备注
/// </summary>
public string Remarks { get; set; }
}
}
}
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp2.1</TargetFramework>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<DocumentationFile>E:\项目代码\DataCenter\Bailun.DC.WebApi\Bailun.DC.WebApi.xml</DocumentationFile>
</PropertyGroup>
<ItemGroup>
<None Remove="Bailun.DC.WebApi.xml" />
</ItemGroup>
<ItemGroup>
<Folder Include="wwwroot\" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.App" />
<PackageReference Include="Bailun.ServiceFabric.Authorize" Version="1.0.3" />
<PackageReference Include="Bailun.ServiceFabric.Core" Version="1.1.0" />
<PackageReference Include="NPOI" Version="2.4.1" />
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.0.0" />
<PackageReference Include="Swashbuckle.AspNetCore.Filters" Version="6.0.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Bailun.DC.Services\Bailun.DC.Services.csproj" />
</ItemGroup>
<ItemGroup>
<None Update="Dockerfile">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>
</Project>
<?xml version="1.0"?>
<doc>
<assembly>
<name>Bailun.DC.WebApi</name>
</assembly>
<members>
<member name="F:Bailun.DC.WebApi.Attribute.BrowseLogAttribute._projectCode">
<summary>
项目id
</summary>
</member>
<member name="F:Bailun.DC.WebApi.Attribute.BrowseLogAttribute._moduleName">
<summary>
模块名称
</summary>
</member>
<member name="F:Bailun.DC.WebApi.Attribute.BrowseLogAttribute._remark">
<summary>
备注信息
</summary>
</member>
<member name="F:Bailun.DC.WebApi.Attribute.BrowseLogAttribute._operationType">
<summary>
操作类型 (0查、1增、2删、3修改)
</summary>
</member>
<member name="M:Bailun.DC.WebApi.Attribute.BrowseLogAttribute.#ctor(System.String,System.String,System.Int32,System.String)">
<summary>
此特性负责写浏览日志
</summary>
<param name="projectId">项目id</param>
<param name="moduleName">模块名称</param>
<param name="operationType">操作类型 (0查、1增、2删、3修改)</param>
<param name="remark">备注信息</param>
</member>
<member name="M:Bailun.DC.WebApi.Attribute.BrowseLogAttribute.PostAsync``2(System.String,``0)">
<summary>
HttpClient实现Post请求
</summary>
<typeparam name="T1">传入对象类型</typeparam>
<typeparam name="T2">返回对象类型</typeparam>
<param name="url"></param>
<param name="content"></param>
<returns></returns>
</member>
<member name="P:Bailun.DC.WebApi.Attribute.BrowseLogAttribute.AddOperationLogInfoOutput.Message">
<summary>
信息
</summary>
</member>
<member name="P:Bailun.DC.WebApi.Attribute.BrowseLogAttribute.AddOperationLogInfoOutput.Result">
<summary>
结果
</summary>
</member>
<member name="P:Bailun.DC.WebApi.Attribute.BrowseLogAttribute.AddOperationLogInfoOutput.StatusCode">
<summary>
状态码
</summary>
</member>
<member name="P:Bailun.DC.WebApi.Attribute.BrowseLogAttribute.AddOperationLogInfoInput.UserId">
<summary>
</summary>
</member>
<member name="P:Bailun.DC.WebApi.Attribute.BrowseLogAttribute.AddOperationLogInfoInput.ProjectId">
<summary>
系统id
</summary>
</member>
<member name="P:Bailun.DC.WebApi.Attribute.BrowseLogAttribute.AddOperationLogInfoInput.ProjectCode">
<summary>
系统代码
</summary>
</member>
<member name="P:Bailun.DC.WebApi.Attribute.BrowseLogAttribute.AddOperationLogInfoInput.UserName">
<summary>
</summary>
</member>
<member name="P:Bailun.DC.WebApi.Attribute.BrowseLogAttribute.AddOperationLogInfoInput.CompanyId">
<summary>
公司id
</summary>
</member>
<member name="P:Bailun.DC.WebApi.Attribute.BrowseLogAttribute.AddOperationLogInfoInput.OperationType">
<summary>
操作类型(0查、1增、2删、3修改)
</summary>
</member>
<member name="P:Bailun.DC.WebApi.Attribute.BrowseLogAttribute.AddOperationLogInfoInput.OperationContent">
<summary>
操作内容
</summary>
</member>
<member name="P:Bailun.DC.WebApi.Attribute.BrowseLogAttribute.AddOperationLogInfoInput.OperationTime">
<summary>
操作时间
</summary>
</member>
<member name="P:Bailun.DC.WebApi.Attribute.BrowseLogAttribute.AddOperationLogInfoInput.IsSuccessed">
<summary>
是否操作成功
</summary>
</member>
<member name="P:Bailun.DC.WebApi.Attribute.BrowseLogAttribute.AddOperationLogInfoInput.FailInfo">
<summary>
失败原因
</summary>
</member>
<member name="P:Bailun.DC.WebApi.Attribute.BrowseLogAttribute.AddOperationLogInfoInput.Remarks">
<summary>
备注
</summary>
</member>
<member name="T:Bailun.DC.WebApi.Controllers.FinanceController">
<summary>
财务报表
</summary>
</member>
<member name="M:Bailun.DC.WebApi.Controllers.FinanceController.Test">
<summary>
测试
</summary>
<returns></returns>
</member>
<member name="M:Bailun.DC.WebApi.Startup.ConfigureServices(Microsoft.Extensions.DependencyInjection.IServiceCollection)">
<summary>
</summary>
<param name="services"></param>
</member>
</members>
</doc>
using Bailun.DC.Models;
using Bailun.DC.Models.Common;
using Bailun.DC.WebApi.Attribute;
using Bailun.ServiceFabric.Authorize;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
namespace Bailun.DC.WebApi.Controllers
{
/// <summary>
/// 财务报表
/// </summary>
[Route("api/Finance")]
[ApiController]
public class FinanceController : ControllerBase
{
/// <summary>
/// 测试
/// </summary>
/// <returns></returns>
[BailunAuthentication(LoginMode.Enforce)]
[HttpPost]
[BrowseLog("Bailun_data", "访问【百伦数据中心】->【财务报表】->【资产负债表】->【查询】页面", 0)]
public CommonApiResponseDto<List<dc_base_finance_fee>> Test()
{
var list = new Services.FinanceReportServices().ListFinanceFee(DateTime.Now.AddDays(-5), DateTime.Now, "", "", "",null,null);
return new CommonApiResponseDto<List<dc_base_finance_fee>> { Data = list, IsSuccess = true };
}
}
}
FROM microsoft/dotnet:2.1-aspnetcore-runtime AS base
WORKDIR /app
EXPOSE 80
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
FROM microsoft/dotnet:2.1-sdk AS build
WORKDIR /src
COPY Bailun.DC.Web/Bailun.DC.Web.csproj Bailun.DC.Web/
COPY Bailun.DC.Services/Bailun.DC.Services.csproj Bailun.DC.Services/
COPY Bailun.DC.Common/Bailun.DC.Common.csproj Bailun.DC.Common/
COPY Bailun.DC.DB/Bailun.DC.DB.csproj Bailun.DC.DB/
COPY Bailun.DC.Models/Bailun.DC.Models.csproj Bailun.DC.Models/
RUN dotnet restore Bailun.DC.Web/Bailun.DC.WebApi.csproj
COPY . .
WORKDIR /src/Bailun.DC.Web
RUN dotnet build Bailun.DC.WebApi.csproj -c Release -o /app
FROM build AS publish
RUN dotnet publish Bailun.DC.WebApi.csproj -c Release -o /app
FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "Bailun.DC.WebApi.dll"]
using Microsoft.AspNetCore;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Logging;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
namespace Bailun.DC.WebApi
{
public class Program
{
public static void Main(string[] args)
{
CreateWebHostBuilder(args).Build().Run();
}
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>();
}
}
using Bailun.ServiceFabric.Extension;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using Microsoft.OpenApi.Models;
using Swashbuckle.AspNetCore.Filters;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
namespace Bailun.DC.WebApi
{
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
/// <summary>
///
/// </summary>
/// <param name="services"></param>
public void ConfigureServices(IServiceCollection services)
{
ConfigManagerConf.SetConfiguration(Configuration);
services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1", new OpenApiInfo { Title = "Bailun.DC.WebApi", Version = "v1" });
var basePath = AppContext.BaseDirectory;
var xmlPath = Path.Combine(basePath, "Bailun.DC.WebApi.xml");
c.IncludeXmlComments(xmlPath, true); //添加控制器层注释(true表示显示控制器注释)
c.OperationFilter<AddResponseHeadersFilter>();
c.OperationFilter<AppendAuthorizeToSummaryOperationFilter>();
c.OperationFilter<SecurityRequirementsOperationFilter>();
var security = new Dictionary<string, IEnumerable<string>> { { "Bailun.DC.WebApi", new string[] { } }, };
c.AddSecurityRequirement(new OpenApiSecurityRequirement
{
{
new OpenApiSecurityScheme
{
Reference = new OpenApiReference { Type = ReferenceType.SecurityScheme, Id = "Bearer" }
},
new List<string>()
}
});
c.AddSecurityDefinition("oauth2", new OpenApiSecurityScheme
{
Description = "JWT授权(数据将在请求头中进行传递)直接在下面框中输入Bearer {token}(注意两者之间是一个空格) \"",
Name = "Authorization",//jwt默认的参数名称
In = ParameterLocation.Header,//jwt默认存放Authorization信息的位置(请求头中)
Type = SecuritySchemeType.ApiKey
});
});
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseSwagger();
app.UseSwaggerUI(c =>
{
c.SwaggerEndpoint("/swagger/v1/swagger.json", "Bailun.DC.WebApi");
});
app.UseMvc();
}
}
}
{
"Logging": {
"LogLevel": {
"Default": "Warning"
}
},
"AllowedHosts": "*",
"FeeUrl": "http://api.fee.bailuntec.com/purchase/other/cost/api/manageCostList",
"cn_str": "server=gz-cdb-kp7s5i79.sql.tencentcdb.com;port=61691;database=bailun_datacenter;uid=root;password=#7kfnymAM$Y9-Ntf;",
"cwUrl": "http://cw.bailuntec.com/api/api/GetRepayPlanDetails",
"rootFilePath": "C:\\WebSite\\DataCenter-NetCore2",
"LoginUrl": "http://www.bailuntec.com/Login/Index?guid=dbc0cffc7f4d11e8a4ca246e96754d42",
"LoginOutUrl": "http://www.bailuntec.com/Login/LoginOut",
"GetUser": "http://www.bailuntec.com/Login/GetUserByBLUserAcct",
"AppSetting": {
"SsoUrl": "http://sso.bailuntec.com", //֤url
"AuthType": "" //Ƿdebugģʽ
},
"BrowseLogSetting": {
"Url": "http://10.0.0.11:5001/operationloginfo/addoperationloginfo",
"CanLog": "yes"
}
}
\ No newline at end of file
{
"Logging": {
"LogLevel": {
"Default": "Warning"
}
},
"AllowedHosts": "*",
"FeeUrl": "http://api.fee.bailuntec.com/purchase/other/cost/api/manageCostList",
"cn_str": "server=gz-cdb-kp7s5i79.sql.tencentcdb.com;port=61691;database=bailun_datacenter;uid=root;password=#7kfnymAM$Y9-Ntf;",
"cwUrl": "http://cw.bailuntec.com/api/api/GetRepayPlanDetails",
"rootFilePath": "C:\\WebSite\\DataCenter-NetCore2",
"LoginUrl": "http://www.bailuntec.com/Login/Index?guid=dbc0cffc7f4d11e8a4ca246e96754d42",
"LoginOutUrl": "http://www.bailuntec.com/Login/LoginOut",
"GetUser": "http://www.bailuntec.com/Login/GetUserByBLUserAcct",
"AppSetting": {
"SsoUrl": "http://sso.bailuntec.com", //֤url
"AuthType": "" //Ƿdebugģʽ
},
"BrowseLogSetting": {
"Url": "http://10.0.0.11:5001/operationloginfo/addoperationloginfo",
"CanLog": "yes"
}
}
\ No newline at end of file
{
"Logging": {
"LogLevel": {
"Default": "Warning"
}
},
"AllowedHosts": "*",
"FeeUrl": "http://api.fee.bailuntec.com/purchase/other/cost/api/manageCostList",
"cn_str": "server=gz-cdb-kp7s5i79.sql.tencentcdb.com;port=61691;database=bailun_datacenter;uid=root;password=#7kfnymAM$Y9-Ntf;",
"cwUrl": "http://cw.bailuntec.com/api/api/GetRepayPlanDetails",
"rootFilePath": "C:\\WebSite\\DataCenter-NetCore2",
"LoginUrl": "http://www.bailuntec.com/Login/Index?guid=dbc0cffc7f4d11e8a4ca246e96754d42",
"LoginOutUrl": "http://www.bailuntec.com/Login/LoginOut",
"GetUser": "http://www.bailuntec.com/Login/GetUserByBLUserAcct",
"AppSetting": {
"SsoUrl": "http://sso.bailuntec.com", //֤url
"AuthType": "" //Ƿdebugģʽ
},
"BrowseLogSetting": {
"Url": "http://10.0.0.11:5001/operationloginfo/addoperationloginfo",
"CanLog": "yes"
}
}
\ No newline at end of file
......@@ -83,9 +83,11 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Bailun.DC.SyncFBAShippingIn
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Bailun.DC.DailyStockAge", "Bailun.DC.DailyStockAge\Bailun.DC.DailyStockAge.csproj", "{09E1882E-CF92-449C-8C70-5BD4E33EB355}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Bailun.DC.TaskCenter", "Bailun.DC.TaskCenter\Bailun.DC.TaskCenter.csproj", "{2215D072-9F97-45DD-AD4D-2691581B5305}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Bailun.DC.TaskCenter", "Bailun.DC.TaskCenter\Bailun.DC.TaskCenter.csproj", "{2215D072-9F97-45DD-AD4D-2691581B5305}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Bailun.DC.SyncSemiStock", "Bailun.DC.SyncSemiStock\Bailun.DC.SyncSemiStock.csproj", "{B0E4B05A-2330-46E1-8CF7-C6D69DBB7850}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Bailun.DC.SyncSemiStock", "Bailun.DC.SyncSemiStock\Bailun.DC.SyncSemiStock.csproj", "{B0E4B05A-2330-46E1-8CF7-C6D69DBB7850}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Bailun.DC.WebApi", "Bailun.DC.WebApi\Bailun.DC.WebApi.csproj", "{757BC915-50BE-4D38-9F82-436D384213E8}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
......@@ -257,6 +259,10 @@ Global
{B0E4B05A-2330-46E1-8CF7-C6D69DBB7850}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B0E4B05A-2330-46E1-8CF7-C6D69DBB7850}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B0E4B05A-2330-46E1-8CF7-C6D69DBB7850}.Release|Any CPU.Build.0 = Release|Any CPU
{757BC915-50BE-4D38-9F82-436D384213E8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{757BC915-50BE-4D38-9F82-436D384213E8}.Debug|Any CPU.Build.0 = Debug|Any CPU
{757BC915-50BE-4D38-9F82-436D384213E8}.Release|Any CPU.ActiveCfg = Release|Any CPU
{757BC915-50BE-4D38-9F82-436D384213E8}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment