Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

csproj file upgraded to new format and add .net core 3.1 #2833

Merged
8 commits merged into from
Apr 4, 2020

Conversation

maikebing
Copy link
Contributor

@maikebing maikebing commented Mar 16, 2020

我的初衷:

  1. 使用.Net Core 3.1 以实现不需要安装任何.Net 环境,直接启动并运行, 也不依赖于各种C++库。
  2. 使用.Net 4.7.2 针对已安装.Net 框架的用户, 并保持开发时设计器可用
  • csproj file upgraded to new format
  • add .Net Core 3.1
  • add .Net 4.7.2
  • modify for ci
  • 待celeron533/BouncyCastle 移除纯 x86 DLL后进行调整
  • 菜单重复显示问题
  • 移除 .NET Framework

@ghost
Copy link

ghost commented Mar 16, 2020

提交 PR 时请按模板填写

CI 挂了,先看看怎么回事

另外有一些参考资料可以先读一遍:

#2756
https://github.com/shadowsocks/shadowsocks-windows/projects/4
https://github.com/shadowsocks/shadowsocks-windows/projects/2

@maikebing
Copy link
Contributor Author

@studentmain 好的。 我后续会改进。

@maikebing maikebing changed the title 项目升级至.Net Core 3.1 csproj file upgraded to new format Mar 16, 2020
@maikebing maikebing changed the title csproj file upgraded to new format csproj file upgraded to new format and add .net core 3.1 Mar 16, 2020
@maikebing
Copy link
Contributor Author

@studentmain ci 可能需要针对 新项目格式做出更改。

Fix ConfigForm wrong move data
@ghost
Copy link

ghost commented Mar 16, 2020

我想问题出在测试和程序本身的目标平台不一致,不过仍然没找到怎么解决。我认为需要先把 x86 限定的 libsscrypto.dll 丢掉才能完全跑通。

@maikebing
Copy link
Contributor Author

我代码里强制设置 x86 了。 看起来好像是路径问题, 但是从 yml 部分找不出来原因

@ghost
Copy link

ghost commented Mar 16, 2020

C:\Users\User>dotnet test "c:\src\shadowsocks-windows\test\ShadowsocksTest.csproj"
Controller\Service\AvailabilityStatistics.cs(217,34): warning CS0168: 声明了变量“e”,但从未使用过 [c:\src\shadowsocks-windows\shadowsocks-csharp\shadowsocks-csharp.csproj]
Proxy\HttpProxy.cs(42,24): warning CS0649: 从未对字段“HttpProxy.HttpState.BytesToRead”赋值,字段将一直保持其默认值 0 [c:\src\shadowsocks-windows\shadowsocks-csharp\shadowsocks-csharp.csproj]
c:\src\shadowsocks-windows\test\bin\Debug\netcoreapp3.1\ShadowsocksTest.dll 的测试运行(.NETCoreApp,Version=v3.1)
Microsoft (R) 测试执行命令行工具版本 16.3.0
版权所有 (C) Microsoft Corporation。保留所有权利。

正在启动测试执行,请稍候...

总共 1 个测试文件与指定模式相匹配。
                                                                                                                          X TestMD5 [64ms]
  错误消息:
   Test method Shadowsocks.Test.CryptographyTest.TestMD5 threw exception:
System.BadImageFormatException: Could not load file or assembly 'Shadowsocks, Version=4.1.9.2, Culture=neutral, PublicKeyToken=null'. 试图加载格式不正确的程序。
  堆栈跟踪:
      at Shadowsocks.Test.CryptographyTest.TestMD5()

@ghost
Copy link

ghost commented Mar 16, 2020

在不固定 x86 目标的情况下可以跑起来,只是加密测试全挂,这个倒是好修复

@ghost ghost added this to the v5 milestone Mar 16, 2020
@ghost
Copy link

ghost commented Mar 16, 2020

这个更新影响太大,考虑暂时不合并到master,在其他分支上操作

合并这个之前需要先合并 celeron533/BouncyCastle 以移除纯 x86 DLL

@ghost ghost requested review from celeron533 and Stzx March 16, 2020 15:29
@maikebing
Copy link
Contributor Author

maikebing commented Mar 16, 2020

我会在 celeron533/BouncyCastle合并之后继续将新代码合并到我的fork,经过调试之后再继续。

@celeron533
Copy link
Contributor

合并这个之前需要先合并 celeron533/BouncyCastle 以移除纯 x86 DLL

抱歉这个没有跑通,server端为libev,但每次跑到第四个chunk就解密失败。到现在也没找到原因。

@ghost
Copy link

ghost commented Mar 17, 2020

合并这个之前需要先合并 celeron533/BouncyCastle 以移除纯 x86 DLL

抱歉这个没有跑通,server端为libev,但每次跑到第四个chunk就解密失败。到现在也没找到原因。

要不看看把shadowsocks-net那边的捡过来吧……

@ghost
Copy link

ghost commented Mar 17, 2020

合并这个之前需要先合并 celeron533/BouncyCastle 以移除纯 x86 DLL

抱歉这个没有跑通,server端为libev,但每次跑到第四个chunk就解密失败。到现在也没找到原因。

主要目的不是跑通,而是提供一个占坑的加密库作为基准,先把测试过了再说

@maikebing
Copy link
Contributor Author

maikebing commented Mar 17, 2020

这个库应该有 x86 版本和 x64 版本。 不同架构用相应的库 , 程序内部自动判断应该也没啥问题。

Copy link
Collaborator

@Stzx Stzx left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

在没有清理一些内部结构时直接迁移不太理想,程序甚至不按照预期的方式运行。

我看了下就发现了比如说这个:

image

@ghost
Copy link

ghost commented Mar 17, 2020

build_script:
  ps: dotnet test

用了之后可以过CI,同时也会执行测试,不过测试结果不会在CI面板上显示,只在控制台里面有log

如果改用dotnet test --no-build的话错误提示和现在的一模一样,怀疑是因为某种原因没有build出net core版本……

@ghost
Copy link

ghost commented Mar 17, 2020

合并了bouncycastle并且试图修正了CI问题的代码现在在studentmain/net-core-build上面。

在没有清理一些内部结构时直接迁移不太理想,程序甚至不按照预期的方式运行。

主张先搬过去再收拾残局,毕竟只有搬过去了才知道会有什么问题

基于搬迁并且调通之后的代码逐渐把核心逻辑抽出来(主要是Server等和ShadowsocksController解耦,新的界面未必是MVC模式的),独立成库,然后重写UI也是一条路

@ghost
Copy link

ghost commented Mar 18, 2020

考虑移除 .NET Framework 目标

首先这个分支一时半会是没法向普通用户交付的了,换句话说,界面的开发工作仍然会有相当长的时间在纯 .NET Framework 的 master 分支上进行, .NET Core 环境暂时没有窗体设计器也是可以接受的。

其次 .NET Core WinForm 窗体设计器按照微软的说法,在做了,已经有测试版了,我认为等它做完是来得及的。

@maikebing
Copy link
Contributor Author

maikebing commented Mar 18, 2020 via email

@maikebing
Copy link
Contributor Author

有清理一些内部结构时直接迁移不太理想,程序甚至不按照预期的方式运行。

我看了下就发现了比如说这个:

这个问题之前修改可能是改菜单组件的时候改错的。 我来修改。

@ghost
Copy link

ghost commented Mar 18, 2020

合并这个之前需要先合并 celeron533/BouncyCastle 以移除纯 x86 DLL

抱歉这个没有跑通,server端为libev,但每次跑到第四个chunk就解密失败。到现在也没找到原因。

怀疑是不能同时收发。在单个方向上全速跑了几分钟随机数据完全没问题,但是只要在其中一方发送时另一方同时发送就会失败。

@ghost
Copy link

ghost commented Mar 19, 2020

用懒办法修复了,send和recv各开一个encryptor实例。因为现在我们用不着dispose密码库了,encryptor可以重新设计一下。

@maikebing maikebing requested a review from Stzx March 20, 2020 02:23
@ghost
Copy link

ghost commented Mar 22, 2020

@celeron533 考虑在这里另建分支把这些commit推上去,这样方便循序渐进更新到NET Core。

@ghost
Copy link

ghost commented Mar 27, 2020

鉴于工作量庞大,没有到直接向一般用户交付的时候,合并到master时机不成熟,改为新建net-core分支,以便后续工作。

@Ares-cz

This comment has been minimized.

@maikebing
Copy link
Contributor Author

请问还有可以使用的ssr一键安装脚本嘛 已经很长一段时间 ssr的登录都成问题 经常一个ip搭建好 刚刚可以登上google 一会儿就又不行了 去查ip情况 也是通的 大家又和我一样问题的嘛 在 2020-03-28 00:28:39,"Student Main" notifications@github.com 写道: 鉴于工作量庞大,没有到直接向一般用户交付的时候,合并到master时机不成熟,改为新建net-core分支,以便后续工作。 — You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub, or unsubscribe.

我这也是这个问题。

@celeron533
Copy link
Contributor

celeron533 commented Mar 31, 2020

@maikebing 谢谢
我这里也建议推到net-core分支。直接到master里的变化太大

@maikebing maikebing changed the base branch from master to net-core April 2, 2020 09:27
@maikebing
Copy link
Contributor Author

@celeron533
好了

@ghost ghost mentioned this pull request Apr 4, 2020
7 tasks
@ghost ghost merged commit 2763b5d into shadowsocks:net-core Apr 4, 2020
This pull request was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants