{
  "version": "https://jsonfeed.org/version/1", 
  "title": ".NET", 
  "description": "", 
  "home_page_url": "https://www.v2ex.com/go/dotnet", 
  "feed_url": "https://www.v2ex.com/feed/dotnet.json", 
  "icon": "https://cdn.v2ex.com/navatar/0bb4/aec1/349_large.png?m=1579009691", 
  "favicon": "https://cdn.v2ex.com/navatar/0bb4/aec1/349_normal.png?m=1579009691", 
  "items": [
    {
      "author": {
        "url": "https://www.v2ex.com/member/octalempyrean", 
        "name": "octalempyrean", 
        "avatar": "https://cdn.v2ex.com/avatar/e369/a6ec/398849_large.png?m=1762532040"
      }, 
      "url": "https://www.v2ex.com/t/1171325", 
      "title": ".net framework \u9879\u76ee\u65b0\u6837\u5f0f \u6570\u636e\u5e93\u8fc1\u79fb\u62a5\u9519", 
      "id": "https://www.v2ex.com/t/1171325", 
      "date_published": "2025-11-07T16:17:31+00:00", 
      "content_html": "wpf \u7a0b\u5e8f \uff0c<a target=\"_blank\" href=\"http://\u6846\u67b6\u4f7f\u7528\u7684\u662f.net\" rel=\"nofollow noopener\">\u6846\u67b6\u4f7f\u7528\u7684\u662f.net</a> framework,csproj <a target=\"_blank\" href=\"http://\u6539\u6210\u4e86.net\" rel=\"nofollow noopener\">\u6539\u6210\u4e86.net</a> \u65b0\u6837\u5f0f\uff08 SDK \u6837\u5f0f\uff09\uff0c\u5728\u4f7f\u7528 EntityFramework \u6570\u636e\u5e93\u8fc1\u79fb Update-Database \u2013Verbose \u547d\u4ee4\u7684\u65f6\u5019\u62a5\u9519\u3002\u662f\u6211\u4f7f\u7528\u7684\u4e0d\u5bf9\u4e48\uff1f\u5927\u5927\u4eec\u80fd\u7834\u4e48\uff1f<br /><br />\u4f7f\u7528\u539f\u6709\u6837\u5f0f\u4e0d\u62a5\u9519\uff0c\u6b63\u5e38\u80fd\u8fc1\u79fb\u3002<br /><br />\u4e0b\u9762\u662f\u62a5\u9519\u622a\u56fe\u3002<br /><br /><a target=\"_blank\" href=\"https://youke1.picui.cn/s1/2025/11/08/690e1a88d6083.png\" rel=\"nofollow noopener\">https://youke1.picui.cn/s1/2025/11/08/690e1a88d6083.png</a>"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/cnbatch", 
        "name": "cnbatch", 
        "avatar": "https://cdn.v2ex.com/gravatar/7eb06cdf719fb364a1dfbbaefc4f9d36?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1158803", 
      "title": "\u77e5\u4e4e\u7f51\u53cb\uff1a\u201cVS2026 \u8fd8\u662f\u8dd1\u5728 .NET Framework 4.8 \u4e0a\uff0c\u770b\u6765 .NET LTS \u53ea\u6709\u4e09\u5e74\u7684\u95ee\u9898\u8fd8\u771f\u628a\u5fae\u8f6f\u81ea\u5df1\u7684\u8116\u5b50\u5361\u4f4f\u4e86\u201d", 
      "id": "https://www.v2ex.com/t/1158803", 
      "date_published": "2025-09-12T07:14:33+00:00", 
      "content_html": "<p>\u8fd9\u6bb5\u8bf4\u6cd5\u6765\u81ea\u4e8e\u77e5\u4e4e\u63d0\u95ee <a href=\"https://www.zhihu.com/question/1949061195031118812\" rel=\"nofollow\">\u5982\u4f55\u8bc4\u4ef7 Visual Studio 2026 \uff1f</a> \u4e0b\u65b9\u7f51\u53cb\u7684\u5176\u4e2d\u4e00\u4e2a\u56de\u7b54\uff1a <br/>\n<a href=\"https://www.zhihu.com/question/1949061195031118812/answer/1949130568806670437\" rel=\"nofollow\">https://www.zhihu.com/question/1949061195031118812/answer/1949130568806670437</a></p>\n<p>\u6211\u8fd8\u6ca1\u5b89\u88c5 VS2026 \uff0c\u7b49\u5230\u6b63\u5f0f\u7248\u63a8\u51fa\u4e86\u518d\u8bf4</p>\n<p>\u4e0d\u8fc7 .NET LTS \u7684\u65f6\u95f4\u5012\u662f\u5f88\u503c\u5f97\u5173\u6ce8\uff0c\u4e09\u5e74\u662f\u4e0d\u662f\u6709\u70b9\u5c11\uff1f\u6bd5\u7adf\u5fae\u8f6f\u81ea\u5bb6 Visual Studio \u672c\u4f53\u7684\u652f\u6301\u65f6\u95f4\u8fdc\u4e0d\u6b62 3 \u5e74\uff0c\u5982\u679c\u8dd1\u5728 .NET LTS \u90a3\u53ef\u80fd\u771f\u4e0d\u591f\u7528</p>\n<hr/>\n<p>\u9898\u5916\u8bdd\uff1a\u6bcf\u4e2a IDE \u5382\u5546\uff08<strong>\u5c24\u5176\u662f JetBrains</strong>\uff09\u90fd\u5e94\u8be5\u53c2\u8003\u4e00\u4e0b\u5fae\u8f6f\u7684\u8fd9\u6b21\u201c\u8425\u9500\u201d\u6280\u5de7\uff0c\u4e13\u95e8\u7559\u4e00\u884c\u5b57\u7ed9<strong>\u8001\u677f\u548c\u91c7\u8d2d\u90e8\u95e8</strong>\u770b\uff0c\u8ba9\u4ed6\u4eec\u5c3d\u91cf\u4e70<strong>\u9ad8\u914d\u7535\u8111</strong>\u800c\u4e0d\u662f\u6309\u7167\u6700\u4f4e\u9700\u6c42\u6765\u4e70\uff08\u9664\u975e\u4ed6\u4eec\u94bb\u7ec6\u8282\u627e\u5230\u771f\u5b9e\u914d\u7f6e\u9700\u6c42\u7684\u7f51\u9875\uff09</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/StoneHuLu", 
        "name": "StoneHuLu", 
        "avatar": "https://cdn.v2ex.com/avatar/ae6d/bbc5/621091_large.png?m=1763986111"
      }, 
      "url": "https://www.v2ex.com/t/1155769", 
      "date_modified": "2025-08-29T10:48:58+00:00", 
      "content_html": "\u524d\u540e\u7aef\u90fd\u6709\uff0c\u524d\u7aef\u7528 vue3 \u7684\u90a3\u79cd\uff0c\u6700\u597d\u652f\u6301\u54cd\u5e94\u5f0f\u5e03\u5c40\u624b\u673a\u4e0a\u4e5f\u80fd\u51d1\u5408\u7528\u3002<br />\u7136\u540e\u589e\u5220\u6539\u67e5\u5217\u8868\u9875\u53ef\u4ee5\u5feb\u901f\u6839\u636e\u6570\u636e\u5e93\u8868\u5b57\u6bb5\u751f\u6210\u7684\u3002<br /><br /><a target=\"_blank\" href=\"http://\u6211\u4ee5\u524d\u5728\u4e92\u8054\u7f51\u5199.net\" rel=\"nofollow noopener\">\u6211\u4ee5\u524d\u5728\u4e92\u8054\u7f51\u5199.net</a> \u5fae\u670d\u52a1\u7684\uff0c\u53bb\u5e74\u5165\u804c\u670b\u53cb\u7684\u516c\u53f8\u56de\u4f20\u7edf\u884c\u4e1a\uff0c\u8fd9\u8fb9\u5f53\u65f6\u6280\u672f\u76cf\u8fd8\u662f java \uff0c\u5199\u4e86\u4e00\u5e74\u591a\u8d8a\u5199\u8d8a\u70e6\uff0c\u5c31\u611f\u89c9\u548c java <a target=\"_blank\" href=\"http://\u7ed3\u4e86\u5a5a\u4f46\u662f\u5fc3\u91cc\u7684\u767d\u6708\u5149\u8fd8\u662f\u5f53\u5e74\u90a3\u4e2a.Net\" rel=\"nofollow noopener\">\u7ed3\u4e86\u5a5a\u4f46\u662f\u5fc3\u91cc\u7684\u767d\u6708\u5149\u8fd8\u662f\u5f53\u5e74\u90a3\u4e2a.Net</a> \uff0c\u73b0\u5728\u516c\u53f8\u6280\u672f\u76cf\u6211\u53ef\u4ee5\u4e00\u8a00\u5802\u4e86\uff0c<a target=\"_blank\" href=\"http://\u60f3\u7740\u5e72\u8106\u5207\u56de.net\" rel=\"nofollow noopener\">\u60f3\u7740\u5e72\u8106\u5207\u56de.net</a> \u7b97\u4e86\uff0c\u8d77\u7801\u5199\u7740\u8212\u670d\uff0c<a target=\"_blank\" href=\"http://\u4f46\u597d\u591a\u5e74\u4e0d\u7528.net\" rel=\"nofollow noopener\">\u4f46\u597d\u591a\u5e74\u4e0d\u7528.net</a> \u5199\u540e\u53f0\u4e86\uff0c\u60f3\u95ee\u4e0b\u6709\u6ca1\u6709\u6bd4\u8f83\u6210\u719f\u53ef\u9760\u7684\u540e\u53f0\u6846\u67b6\u5f00\u7bb1\u5373\u7528\u7684\uff0c<a target=\"_blank\" href=\"http://\u60f3\u7740\u628a\u73b0\u5728\u7684\u82e5\u4f9d\u540e\u53f0\u9010\u6b65\u8fed\u4ee3\u56de.Net\" rel=\"nofollow noopener\">\u60f3\u7740\u628a\u73b0\u5728\u7684\u82e5\u4f9d\u540e\u53f0\u9010\u6b65\u8fed\u4ee3\u56de.Net</a>", 
      "date_published": "2025-08-29T05:49:39+00:00", 
      "title": ".Net \u6709\u6ca1\u6709\u7c7b\u4f3c\u82e5\u4f9d\u8fd9\u79cd\u540e\u53f0\u6846\u67b6\uff1f", 
      "id": "https://www.v2ex.com/t/1155769"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/rrubick", 
        "name": "rrubick", 
        "avatar": "https://cdn.v2ex.com/avatar/9bee/a327/102175_large.png?m=1774518297"
      }, 
      "url": "https://www.v2ex.com/t/1154926", 
      "title": "\u8bf7\u6559\u4e2a .NET Framework 4.0 \u5347\u7ea7\u4ee5\u8fd0\u884c\u5728 arm \u4e0a\u7684\u95ee\u9898", 
      "id": "https://www.v2ex.com/t/1154926", 
      "date_published": "2025-08-26T01:45:03+00:00", 
      "content_html": "<p>\u6709\u4e00\u4e2a\u8001\u9879\u76ee\uff0c\u662f\u7528 .NET Framework 4.0 \u5f00\u53d1\uff0c\u5728 web \u9875\u9762\u8c03\u7528\u5e76\u8fd0\u884c\u5728 windows \u4e0a\u3002\n\u73b0\u5728\u6709\u4e00\u4e2a\u9700\u6c42\uff1a\u9700\u8981\u8fc1\u79fb\u5230 arm \u4e0a\u8fd0\u884c\u3002</p>\n<p>\u6211\u641c\u7d22\u4e86\u4e00\u4e0b\uff0c\u89e3\u51b3\u65b9\u6848\u662f\uff1a</p>\n<ol>\n<li>\u5347\u7ea7\u5230 .NET Framework 4.8.1 \u53ca\u4ee5\u540e\u7248\u672c\uff0c\u539f\u751f\u652f\u6301 arm</li>\n<li>\u7528 .NET Core \uff08.NET \u6216\u8005 <a href=\"http://ASP.NET\" rel=\"nofollow\">ASP.NET</a> \uff09 \u91cd\u5199</li>\n</ol>\n<p>\u7531\u4e8e\u672c\u4eba\u4ece\u672a\u63a5\u89e6\u6b64\u7c7b\u5f00\u53d1\uff0c\u6240\u4ee5\u6709\u7591\u95ee\u60f3\u8bf7\u6559\u5927\u4f6c\uff1a</p>\n<ol>\n<li>\u4ee5\u4e0a\u54ea\u79cd\u65b9\u6848\u5bf9\u4e8e\u6211\u6765\u8bf4\u662f\u6bd4\u8f83\u7701\u5fc3\u7684</li>\n<li>\u6211\u662f\u5426\u5fc5\u987b\u8981\u5728 arm \u67b6\u6784\u7684\u673a\u5668\u4e0a\u5f00\u53d1\uff0c\u6bd4\u5982 MacOS \u3001arm Ubuntu \uff0c\u5982\u679c\u7528\u6811\u8393\u6d3e\u662f\u5426\u53ef\u884c\u3002</li>\n</ol>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/boliang2333", 
        "name": "boliang2333", 
        "avatar": "https://cdn.v2ex.com/gravatar/9cd9c807f6a944fa06527bd9e878de3e?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1154817", 
      "title": "\u5e94\u5c4a\u751f\u521a\u5165\u804c\uff0c\u505a\u7684\u662f wms+mes+mes \u4e8c\u6b21\u5f00\u53d1\uff0c\u56e0\u4e3a\u6ca1\u5b66\u8fc7.net+c#\uff0c\u73b0\u5728\u63a5\u53e3\u4ee3\u7801\u5168\u9760 ai \u5199\u600e\u4e48\u529e", 
      "id": "https://www.v2ex.com/t/1154817", 
      "date_published": "2025-08-25T08:55:12+00:00", 
      "content_html": "\u521a\u5165\u804c\u5c31\u662f\u719f\u6089\u4e86\u4e0b\u5382\u91cc\u7684\u5927\u6982\u4e1a\u52a1\uff0c\u8981\u5bf9\u67d0\u4e9b\u7279\u5b9a\u4e1a\u52a1\u505a\u6570\u636e\u5bf9\u63a5\u7684\u63a5\u53e3\uff0c\u521a\u5f00\u59cb\u8fdb\u6765\u771f\u7684\u662f\u4ee3\u7801\u90fd\u770b\u7684\u61f5\u903c\uff0c\u7cfb\u7edf\u7528\u7684\u662f ddd \u67b6\u6784\uff08\u867d\u7136\u6211\u4e5f\u4e0d\u61c2\uff09\uff0c\u6211\u5c31\u8ba9 ai \u4eff\u7167\u7cfb\u7edf\u4e4b\u524d\u9057\u7559\u4e0b\u6765\u7684\u63a5\u53e3\u5199\uff0c\u5199\u51fa\u6765\u540e\u8ddf ai \u95ee\u6765\u95ee\u53bb\u4e5f\u5927\u6982\u770b\u7684\u61c2\u4e86\uff0c\u5927\u6982\u5c31\u662f<br />1.control \u91cc\u521b\u5efa api \uff0c\u521b\u5efa model \uff0c\u58f0\u660e\u63a5\u53e3\uff0c\u5b9e\u73b0\u63a5\u53e3\uff0c\u53cd\u5e8f\u5217\u5316\u4f20\u5165\u7684 json \u503c<br />2.\u5224\u7a7a\uff0c\u7528 linq \u8bed\u53e5\u67e5\u8be2\u672c\u5730\u6570\u636e\u5e93\u91cc\u662f\u5426\u6709\u548c json \u503c\u76f8\u5e94\u7684\u6570\u636e<br />3.\u6709\u7684\u8bdd\u5b58\u4e0b\u6765\uff0c\u8ba9\u540e\u628a\u5b58\u4e0b\u6765\u7684\u6570\u636e\u5bfc\u5165\u5b9e\u4f53\u7c7b\uff0c\u5728\u7528 context \u52a0\u5230\u672c\u5730\u6570\u636e\u5e93\u91cc<br /><br />\u4f46\u662f\u8ba9\u6211\u81ea\u5df1\u4ece 0 \u5199\u771f\u7684\u5f88\u56f0\u96be\uff0c\u611f\u89c9\u5565\u90fd\u8054\u7cfb\u4e0d\u8d77\u6765\uff0c\u662f\u5426\u9700\u8981\u7cfb\u7edf\u5b66\u4e60\u4e00\u4e0b\uff0c\u6709\u6ca1\u6709\u5feb\u901f\u638c\u63e1 curd \u7684\u65b9\u6cd5"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/lorenzoyang2002", 
        "name": "lorenzoyang2002", 
        "avatar": "https://cdn.v2ex.com/gravatar/ca7fd17b691ea66da0226718ca2aa93f?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1150815", 
      "title": "[\u5206\u4eab\u521b\u9020] \u5f00\u6e90\u8f7b\u91cf\u7ea7 WinForm \u58c1\u7eb8\u5207\u6362\u5668 Wallpaper Switcher (C# / .NET 9)", 
      "id": "https://www.v2ex.com/t/1150815", 
      "date_published": "2025-08-07T12:43:06+00:00", 
      "content_html": "<p>\u5927\u5bb6\u597d\uff01</p>\n<p>\u4f5c\u4e3a\u4e00\u4e2a C# \u65b0\u624b\uff0c\u5b8c\u6210\u4e86\u6211\u7684\u7b2c\u4e00\u4e2a\u771f\u6b63\u6709\u7528\u7684\u4e2a\u4eba\u9879\u76ee\uff1a<strong>Wallpaper Switcher \uff08\u58c1\u7eb8\u5207\u6362\u5668\uff09</strong>\uff0c\u5e76\u5df2\u5f00\u6e90\u3002</p>\n<ul>\n<li><strong>\u9879\u76ee\u5730\u5740\uff1a</strong> <a href=\"https://github.com/lorenzoyang/WallpaperSwitcher\" rel=\"nofollow\">WallpaperSwitcher</a></li>\n<li><strong>\u4e0b\u8f7d (Releases)\uff1a</strong> <a href=\"https://github.com/lorenzoyang/WallpaperSwitcher/releases\" rel=\"nofollow\">releases</a></li>\n<li>\uff08<a href=\"https://zhuanlan.zhihu.com/p/1936883980545815549\" rel=\"nofollow\">\u77e5\u4e4e\u8be6\u7ec6\u5f00\u53d1\u8fc7\u7a0b\u4e0e\u601d\u8003</a>\uff09</li>\n</ul>\n<p><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a</strong>\n\u4e00\u4e2a\u57fa\u4e8e WinForms \u5f00\u53d1\u7684\u8f7b\u91cf\u7ea7\u5de5\u5177\uff0c\u4e13\u6ce8\u4e8e<strong>\u5feb\u901f\u3001\u65b9\u4fbf\u5730\u7ba1\u7406\u548c\u5207\u6362\u9759\u6001\u58c1\u7eb8</strong>\u3002\u652f\u6301 Windows 8/10/11 (.NET 9)\u3002</p>\n<p><strong>\u6838\u5fc3\u75db\u70b9 &amp; \u4e3a\u4ec0\u4e48\u505a\u8fd9\u4e2a\uff1f</strong></p>\n<ul>\n<li>\u66fe\u662f Wallpaper Engine \u7528\u6237\uff0c\u4f46\u4e3b\u8981\u7528\u9759\u6001\u58c1\u7eb8\u3002</li>\n<li>WE \u5bf9\u9759\u6001\u58c1\u7eb8\u7ba1\u7406\u7a0d\u663e\u81c3\u80bf\uff0c\u8fc1\u79fb\u914d\u7f6e\u9ebb\u70e6\u3002</li>\n<li>\u52a8\u6001\u58c1\u7eb8\u6709\u529f\u8017\uff0c\u5207\u6362\u7a97\u53e3\u65f6\u5076\u5c14\u5361\u987f\u3002</li>\n<li>\u9700\u8981<strong>\u66f4\u8f7b\u91cf\u3001\u4e13\u6ce8\u3001\u6613\u8fc1\u79fb</strong>\u7684\u9759\u6001\u58c1\u7eb8\u5207\u6362\u65b9\u6848\u3002</li>\n</ul>\n<p><strong>\u4e3b\u8981\u529f\u80fd\u4eae\u70b9\uff1a</strong></p>\n<ol>\n<li><strong>\u6587\u4ef6\u5939\u7ba1\u7406</strong>\uff1a\u8f7b\u677e\u6dfb\u52a0/\u5220\u9664/\u5207\u6362\u58c1\u7eb8\u6e90\u6587\u4ef6\u5939\u3002</li>\n<li><strong>\u4e00\u952e\u5207\u6362</strong>\uff1a\u6309\u94ae\u6216\u70ed\u952e\u7acb\u5373\u5207\u6362\u58c1\u7eb8/\u6587\u4ef6\u5939\u3002</li>\n<li><strong>\u5168\u5c40\u70ed\u952e</strong>\uff1a\u540e\u53f0\u8fd0\u884c\uff0c\u652f\u6301\u81ea\u5b9a\u4e49\u70ed\u952e\uff08\u4ec5\u8fd0\u884c\u65f6\u6709\u6548\uff09\u3002</li>\n<li><strong>\u7cfb\u7edf\u6258\u76d8\u5e38\u9a7b</strong>\uff1a\u5173\u95ed\u5373\u6700\u5c0f\u5316\u5230\u6258\u76d8\uff0c\u652f\u6301\u70ed\u952e\u5fc5\u9700\u3002</li>\n<li><strong>\u5f00\u673a\u81ea\u542f</strong>\u3002</li>\n<li>\n<strong>\u4e24\u79cd\u5207\u6362\u6a21\u5f0f</strong>\uff1a<ul>\n<li><code>Native</code>\uff1a\u7528\u7cfb\u7edf\u5e7b\u706f\u7247\uff0c\u6d41\u7545\u4f46\u95f4\u9694\u53d7\u9650\u3002</li>\n<li><code>Custom</code>\uff1a\u76f4\u63a5 API \u8c03\u7528\uff0c\u5207\u6362\u66f4\u5feb\u66f4\u5373\u65f6\u3002</li>\n</ul>\n</li>\n<li><strong>\u7b80\u6d01\u8bbe\u7f6e\u754c\u9762</strong>\u3002</li>\n</ol>\n<p><strong>\u6280\u672f\u9009\u578b\u4e0e\u5f00\u53d1\u4eae\u70b9\uff1a</strong></p>\n<ul>\n<li><strong>WinForms</strong>\uff1a\u5feb\u901f\u9a8c\u8bc1\u60f3\u6cd5\uff0c\u5b66\u4e60\u66f2\u7ebf\u4f4e\uff0c\u5c0f\u5de5\u5177\u9ad8\u6548\u53ef\u9760\u3002\uff08\u65b0\u624b\u53cb\u597d\uff09</li>\n<li><strong>\u67b6\u6784</strong>\uff1a<code>Core</code> (\u6838\u5fc3\u903b\u8f91\u5e93) + <code>Desktop</code> (WinForms UI) \u5206\u79bb\u3002\u6838\u5fc3\u903b\u8f91\u5c01\u88c5\u826f\u597d\uff0c\u4e3a\u672a\u6765\u53ef\u80fd\u7684 UI \u8fc1\u79fb\uff08 WPF/WinUI/Avalonia \uff09\u7559\u6709\u4f59\u5730\u3002</li>\n<li>\n<strong>\u4e0e Win32 API \u4ea4\u4e92</strong>\uff1a<ul>\n<li>\u4f7f\u7528 <strong><code>CsWin32</code></strong> (\u5f3a\u70c8\u63a8\u8350\uff01)\uff1a\u57fa\u4e8e\u6e90\u751f\u6210\u5668\uff0c\u81ea\u52a8\u751f\u6210\u7cbe\u786e P/Invoke \u7b7e\u540d\uff0c\u5927\u5e45\u7b80\u5316\u4ee3\u7801\uff08\u58c1\u7eb8\u8bbe\u7f6e\u3001\u70ed\u952e\u6ce8\u518c\u3001\u542f\u52a8\u9879\u7ba1\u7406\uff09\uff0c\u63d0\u5347\u5b89\u5168\u6027\u548c\u6b63\u786e\u6027\u3002</li>\n<li>\u4ece <code>DllImport</code> \u8fc1\u79fb\u5230\u66f4\u73b0\u4ee3\u7684 <code>LibraryImport</code> (\u6e90\u751f\u6210)\u3002</li>\n</ul>\n</li>\n<li>UI \u7f8e\u5316\u5c0f\u63d2\u66f2\uff1a\u8bbe\u8ba1\u5668\u4ee3\u7801\u7ecf AI \u7f8e\u5316\u540e\uff0cVS \u8bbe\u8ba1\u5668\u9884\u89c8\u5931\u6548\uff0c\u624b\u52a8\u7ef4\u62a4\u4ee3\u7801\u3002\u63a5\u53d7\u6b64\u4ee3\u4ef7\u6362\u53d6\u66f4\u597d\u89c6\u89c9\u6548\u679c\u3002</li>\n</ul>\n<p><strong>\u83b7\u53d6\u4e0e\u4f7f\u7528\uff1a</strong></p>\n<ul>\n<li><strong>\u7eff\u8272\u514d\u5b89\u88c5</strong>\uff01\u4e0b\u8f7d Releases \u4e2d\u7684 <code>WallpaperSwitcher.exe</code> (\u5355\u6587\u4ef6\uff0c\u9996\u6b21\u8fd0\u884c\u6162) \u6216 <code>WallpaperSwitcher.zip</code> (\u89e3\u538b\u8fd0\u884c <code>bin\\WallpaperSwitcher.exe</code>\uff0c\u63a8\u8350)\u3002</li>\n<li>\u8be6\u89c1 GitHub README \u3002</li>\n</ul>\n<p><strong>\u671f\u5f85\u4f60\u7684\u53cd\u9988\uff01</strong>\n\u4f5c\u4e3a\u7b2c\u4e00\u4e2a\u5b8c\u6574\u7684 C# \u5b9e\u7528\u9879\u76ee\uff0c\u6df1\u77e5\u4ee3\u7801\u548c\u8bbe\u8ba1\u5fc5\u6709\u4e0d\u8db3\u3002\u975e\u5e38\u6b22\u8fce\uff1a</p>\n<ul>\n<li>Bug \u62a5\u544a</li>\n<li>\u529f\u80fd/UI/UX/\u4ee3\u7801/\u6027\u80fd\u6539\u8fdb\u5efa\u8bae</li>\n<li>\u6280\u672f\u5b9e\u73b0\u7ec6\u8282\u8ba8\u8bba (WinForms, CsWin32, API \u8c03\u7528\u7b49)</li>\n<li>\u5355\u7eaf\u7684\u4f7f\u7528\u4ea4\u6d41</li>\n</ul>\n<p>\u8bf7\u5728 <strong>GitHub Issues/PR</strong> \u6216 <strong>\u672c\u5e16\u56de\u590d</strong> \u4e2d\u63d0\u51fa\uff01\u4f60\u7684\u53cd\u9988\u662f\u5b9d\u8d35\u7684\u5b66\u4e60\u673a\u4f1a\u3002</p>\n<p>\u5e0c\u671b\u8fd9\u4e2a\u5c0f\u5de5\u5177\u4e5f\u80fd\u4e3a\u4f60\u5e26\u6765\u4fbf\u5229\uff01</p>\n<p>\uff08\u6587\u7ae0\u7528 Deepseek \u8fdb\u884c\u4e86\u4f18\u5316\uff0c\u672c\u4eba\u6587\u91c7\u4e0d\u597d\uff0c\u5185\u5bb9\u662f\u81ea\u5df1\u5199\u7684\u53ea\u4e0d\u8fc7\u8ba9 AI \u6da6\u8272\u4e86\u4e00\u4e0b\uff0c\u89c1\u8c05\uff09</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/Need4more", 
        "name": "Need4more", 
        "avatar": "https://cdn.v2ex.com/avatar/19ce/f31a/305835_large.png?m=1762498606"
      }, 
      "url": "https://www.v2ex.com/t/1147221", 
      "date_modified": "2025-07-23T11:22:01+00:00", 
      "content_html": "<p>dotnet 10 \u652f\u6301\u76f4\u63a5\u8fd0\u884c cs \u6e90\u6587\u4ef6</p>\n<p><strong>\u5f15\u7528\u4e09\u65b9\u5305</strong></p>\n<pre><code class=\"language-cs\">#:package Humanizer@2.14.1\n\nusing Humanizer;\n\nvar dotNet9Released = DateTimeOffset.Parse(\"2024-12-03\");\nvar since = DateTimeOffset.Now - dotNet9Released;\n\nConsole.WriteLine($\"It has been {since.Humanize()} since .NET 9 was released.\");\n</code></pre>\n<p><strong>linux shebang</strong></p>\n<pre><code class=\"language-cs\">#!/usr/bin/dotnet run\nConsole.WriteLine(\"Hello from a C# script!\");\n</code></pre>\n<pre><code>chmod +x app.cs\n./app.cs\n</code></pre>\n<p><a href=\"https://devblogs.microsoft.com/dotnet/announcing-dotnet-run-app\" rel=\"nofollow\">https://devblogs.microsoft.com/dotnet/announcing-dotnet-run-app</a></p>\n<p><strong>v \u7ad9\u7684 dotnet \u8282\u70b9\u597d\u51b7\u6e05~~~</strong></p>\n", 
      "date_published": "2025-07-23T11:19:02+00:00", 
      "title": "csharp \u8fd9\u56de\u771f\u6210\u4e86\u811a\u672c\u8bed\u8a00\uff1a dotnet run app.cs", 
      "id": "https://www.v2ex.com/t/1147221"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/niubiman", 
        "name": "niubiman", 
        "avatar": "https://cdn.v2ex.com/avatar/c9e5/c651/312505_large.png?m=1721460904"
      }, 
      "url": "https://www.v2ex.com/t/1139918", 
      "date_modified": "2025-06-20T06:35:46+00:00", 
      "content_html": "\u9879\u76ee\u5730\u5740\uff1a <a target=\"_blank\" href=\"https://github.com/choby/ETLBox.ClickHouse\" rel=\"nofollow noopener\">https://github.com/choby/ETLBox.ClickHouse</a> \uff0c\u9ebb\u70e6\u8def\u8fc7\u7684\u5144\u5f1f\u4eec\u70b9\u4e2a star<br /><a target=\"_blank\" href=\"http://\u9ed8\u8ba4\u652f\u6301.net\" rel=\"nofollow noopener\">\u9ed8\u8ba4\u652f\u6301.net</a> 6,8,9 \uff0c\u5982\u679c\u9700\u8981\u652f\u6301\u5176\u4ed6\u7248\u672c\u53ef\u4ee5\u81ea\u884c\u5c1d\u8bd5\u7f16\u8bd1<br />\u4f7f\u7528\u8bf4\u660e\u5df2\u7ecf\u5728 md \u4e2d\u5199\u4e86\uff0c \u7531\u4e8e ETLBox \u5b98\u65b9\u5e76\u6ca1\u6709\u63d0\u4f9b clickhouse \u7684\u652f\u6301\uff0c\u6240\u4ee5\u672c\u7ec4\u4ef6\u4e3b\u8981\u662f\u9488\u5bf9\u4f7f\u7528 ETLBox \u5e76\u4e14\u4f7f\u7528 clickhouse \u505a\u6570\u4ed3\u7684\u9879\u76ee\u6709\u5e2e\u52a9\uff0c\u8fd9\u90e8\u5206\u529f\u80fd\u5728\u672c\u516c\u53f8\u751f\u4ea7\u9879\u76ee\u5df2\u7ecf\u5728\u6b63\u5f0f\u4f7f\u7528\uff0c\u7a33\u5b9a\u53ef\u9760", 
      "date_published": "2025-06-20T06:32:18+00:00", 
      "title": "\u5c0f\u5f1f\u5199\u4e86\u4e00\u4e2a ETLBox \u5199\u5165\u6570\u636e\u5230 ClickHouse \u7684\u7ec4\u4ef6\uff0c \u9700\u8981\u7528\u5230\u7684\u5144\u5f1f\u4eec\u53ef\u4ee5\u770b\u770b", 
      "id": "https://www.v2ex.com/t/1139918"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/AndrewHenry", 
        "name": "AndrewHenry", 
        "avatar": "https://cdn.v2ex.com/avatar/4910/cb40/621873_large.png?m=1748669696"
      }, 
      "url": "https://www.v2ex.com/t/1125132", 
      "date_modified": "2025-04-15T00:37:59+00:00", 
      "content_html": "\u7528\u7684 RiderIDE \u6c42\u5927\u4f6c\u770b\u770b\uff1b<br /># ~~ C# .NET (.NET Core / .NET 5+) .gitignore \u6587\u4ef6 ~~<br /># \u6b64\u6587\u4ef6\u65e8\u5728\u8986\u76d6 .NET 9 \u53ca\u76f8\u5173\u5de5\u5177\u94fe\u751f\u6210\u7684\u5927\u591a\u6570\u4e34\u65f6\u6587\u4ef6\u548c\u672c\u5730\u914d\u7f6e\u3002<br /># \u9002\u7528\u4e8e Visual Studio, VS Code, JetBrains Rider \u7b49\u73af\u5883\u3002<br /><br /># \u64cd\u4f5c\u7cfb\u7edf\u751f\u6210\u7684\u6587\u4ef6<br /># -------------------------------------------------------------------<br />.DS_Store           # macOS<br />Thumbs.db           # Windows Thumbs cache<br />ehthumbs.db         # Windows Thumbs cache<br />Desktop.ini         # Windows Folder view settings<br /><br /># IDE \u548c\u7f16\u8f91\u5668\u7279\u5b9a\u7684\u6587\u4ef6/\u6587\u4ef6\u5939<br /># -------------------------------------------------------------------<br /><br /># Visual Studio<br />.vs/                # Visual Studio \u89e3\u51b3\u65b9\u6848\u7f13\u5b58\u548c\u7528\u6237\u8bbe\u7f6e (\u975e\u5e38\u91cd\u8981)<br />*.suo               # Visual Studio Solution User Options (\u65e7\u683c\u5f0f)<br />*.user              # Visual Studio Project User Options<br />*.vcxproj.user    # C++ Project User Options (\u5982\u679c\u6df7\u5408\u4f7f\u7528)<br />*.*proj.user        # \u4efb\u4f55\u9879\u76ee\u7684\u7528\u6237\u9009\u9879<br /><br /># Visual Studio Code<br />.vscode/            # VS Code \u5de5\u4f5c\u533a\u8bbe\u7f6e\u3002<br />                    # \u6ce8\u610f\uff1a\u6709\u65f6 launch.json \u6216 tasks.json \u53ef\u80fd\u5e0c\u671b\u5171\u4eab\uff0c<br />                    # \u5982\u679c\u662f\u8fd9\u6837\uff0c\u53ef\u4ee5\u53d6\u6d88\u5ffd\u7565\u7279\u5b9a\u6587\u4ef6\uff1a<br />                    # !.vscode/launch.json<br />                    # !.vscode/tasks.json<br />                    # !.vscode/settings.json  (\u5982\u679c\u60f3\u5171\u4eab\u67d0\u4e9b\u5de5\u4f5c\u533a\u8bbe\u7f6e)<br /><br /># JetBrains Rider<br />.idea/              # Rider \u9879\u76ee/\u89e3\u51b3\u65b9\u6848\u8bbe\u7f6e\u548c\u7f13\u5b58<br />*.sln.iml           # Rider/IntelliJ \u751f\u6210\u7684\u6a21\u5757\u6587\u4ef6<br /><br /># \u7f16\u8bd1\u548c\u6784\u5efa\u8f93\u51fa<br /># -------------------------------------------------------------------<br />bin/                # \u4e3b\u8981\u7f16\u8bd1\u8f93\u51fa\u76ee\u5f55<br />obj/                # \u4e2d\u95f4\u7f16\u8bd1\u6587\u4ef6\u76ee\u5f55<br />**/bin/             # \u9012\u5f52\u5339\u914d\u6240\u6709 bin \u76ee\u5f55<br />**/obj/             # \u9012\u5f52\u5339\u914d\u6240\u6709 obj \u76ee\u5f55<br />**/Release/         # \u663e\u5f0f\u5ffd\u7565 Release \u6784\u5efa\u8f93\u51fa (\u901a\u5e38\u5df2\u5728 bin/ \u4e2d)<br />**/Debug/           # \u663e\u5f0f\u5ffd\u7565 Debug \u6784\u5efa\u8f93\u51fa (\u901a\u5e38\u5df2\u5728 bin/ \u4e2d)<br />build/              # \u6709\u4e9b\u6784\u5efa\u811a\u672c\u4f7f\u7528 'build' \u4f5c\u4e3a\u8f93\u51fa<br />artifacts/          # .NET SDK \u98ce\u683c\u9879\u76ee\u6709\u65f6\u4f7f\u7528\u7684\u53d1\u5e03/\u6253\u5305\u8f93\u51fa\u76ee\u5f55<br />publish/            # `dotnet publish` \u7684\u9ed8\u8ba4\u8f93\u51fa\u76ee\u5f55<br />**/Generated/       # \u6709\u4e9b\u4ee3\u7801\u751f\u6210\u5668\u53ef\u80fd\u8f93\u51fa\u5230\u8fd9\u91cc<br /><br /># NuGet \u5305\u548c\u4f9d\u8d56\u9879\u7f13\u5b58<br /># -------------------------------------------------------------------<br />packages/           # \u65e7\u7248 NuGet \u5305\u6587\u4ef6\u5939 (packages.config)<br />*.nupkg             # NuGet \u5305\u6587\u4ef6<br />*.snupkg            # NuGet \u7b26\u53f7\u5305\u6587\u4ef6<br />*.[Pp]ackages.* # \u4f8b\u5982 'project.assets.json' \u5728 obj/ \u4e2d\uff0c\u4f46\u4ee5\u9632\u4e07\u4e00<br /># \u6ce8\u610f\uff1a\u901a\u5e38\u4e0d\u5ffd\u7565 nuget.config \uff0c\u56e0\u4e3a\u5b83\u5b9a\u4e49\u4e86\u5305\u6e90\u3002<br /><br /># \u7528\u6237\u7279\u5b9a\u7684\u8fd0\u884c\u65f6\u6587\u4ef6<br /># -------------------------------------------------------------------<br />*.pid               # \u8fdb\u7a0b ID \u6587\u4ef6<br />*.lock              # \u9501\u6587\u4ef6<br /><br /># \u65e5\u5fd7\u548c\u4e34\u65f6\u6587\u4ef6<br /># -------------------------------------------------------------------<br />*.log               # \u65e5\u5fd7\u6587\u4ef6<br />*.log.* # \u6eda\u52a8\u65e5\u5fd7\u6587\u4ef6<br />*.tmp               # \u4e34\u65f6\u6587\u4ef6<br />*.bak               # \u5907\u4efd\u6587\u4ef6<br />*.swp               # Vim \u4ea4\u6362\u6587\u4ef6<br />*.DS_Store?* # macOS \u7279\u6b8a\u6587\u4ef6\u53d8\u4f53<br /><br /># \u6d4b\u8bd5\u7ed3\u679c\u548c\u8986\u76d6\u7387\u62a5\u544a<br /># -------------------------------------------------------------------<br />TestResults/        # Visual Studio \u6d4b\u8bd5\u7ed3\u679c\u76ee\u5f55<br />*.trx               # Visual Studio \u6d4b\u8bd5\u7ed3\u679c\u6587\u4ef6<br />*.coverage          # Visual Studio \u4ee3\u7801\u8986\u76d6\u7387\u6587\u4ef6<br />*.coveragexml       # \u4ee3\u7801\u8986\u76d6\u7387 XML \u6587\u4ef6 (\u5982 Cobertura)<br />**/coverage.cobertura.xml # Cobertura \u683c\u5f0f\u8986\u76d6\u7387\u62a5\u544a<br />**/<a target=\"_blank\" href=\"http://lcov.info\" rel=\"nofollow noopener\">lcov.info</a>        # lcov \u683c\u5f0f\u8986\u76d6\u7387\u62a5\u544a (\u5e38\u7528\u4e8e\u524d\u7aef/JS \u6d4b\u8bd5)<br />reportresults/      # \u4e00\u4e9b\u62a5\u544a\u751f\u6210\u5668\u7684\u8f93\u51fa\u76ee\u5f55<br /><br /># \u8fd0\u884c\u65f6\u914d\u7f6e\u6587\u4ef6\u548c Secrets (\u975e\u5e38\u91cd\u8981)<br /># -------------------------------------------------------------------<br />secrets.json        # .NET User Secrets \u6587\u4ef6 (\u7edd\u4e0d\u5e94\u63d0\u4ea4)<br />**/secrets.json     # \u786e\u4fdd\u4efb\u4f55\u4f4d\u7f6e\u7684 secrets \u6587\u4ef6\u90fd\u88ab\u5ffd\u7565<br />appsettings.Development.json # \u5f00\u53d1\u73af\u5883\u7279\u5b9a\u8bbe\u7f6e\uff0c\u53ef\u80fd\u5305\u542b\u672c\u5730\u654f\u611f\u4fe1\u606f\u3002<br />                             # \u53d6\u51b3\u4e8e\u56e2\u961f\u7b56\u7565\uff0c\u6709\u65f6\u4f1a\u63d0\u4ea4 *\u6a21\u677f* \u4f46\u975e\u5b9e\u9645\u503c\u3002<br />                             # \u63a8\u8350\u7684\u505a\u6cd5\u662f\u4e0d\u8981\u63d0\u4ea4\u5305\u542b\u771f\u5b9e\u5bc6\u7801/\u5bc6\u94a5\u7684\u6b64\u6587\u4ef6\u3002<br />.env                # \u73af\u5883\u53d8\u91cf\u6587\u4ef6\uff0c\u5e38\u7528\u4e8e\u672c\u5730\u5f00\u53d1 secrets<br /><br /># \u6570\u636e\u5e93\u6587\u4ef6 (\u672c\u5730\u5f00\u53d1\u6570\u636e\u5e93)<br /># -------------------------------------------------------------------<br />*.mdf               # SQL Server \u6570\u636e\u5e93\u6587\u4ef6<br />*.ldf               # SQL Server \u65e5\u5fd7\u6587\u4ef6<br />*.sdf               # SQL Server Compact Edition \u6570\u636e\u5e93\u6587\u4ef6<br />*.db                # \u901a\u7528\u6570\u636e\u5e93\u6587\u4ef6 (\u5982 SQLite)<br />*.db3               # SQLite \u5e38\u7528\u6269\u5c55\u540d<br />*.sqlite            # SQLite \u5e38\u7528\u6269\u5c55\u540d<br />*.sqlite3           # SQLite \u5e38\u7528\u6269\u5c55\u540d<br /><br /># Web \u5f00\u53d1\u76f8\u5173 (\u5982\u679c\u9002\u7528)<br /># -------------------------------------------------------------------<br />node_modules/       # Node.js \u4f9d\u8d56\u9879 (\u5982\u679c\u4f7f\u7528 npm/yarn)<br />wwwroot/dist/       # \u524d\u7aef\u6784\u5efa\u5de5\u5177\u7684\u8f93\u51fa\u76ee\u5f55 (\u793a\u4f8b)<br />wwwroot/lib/        # \u901a\u8fc7 LibMan \u6216\u7c7b\u4f3c\u5de5\u5177\u7ba1\u7406\u7684\u5ba2\u6237\u7aef\u5e93 (\u5982\u679c\u4e0d\u60f3\u63d0\u4ea4)<br /><br /># \u7279\u5b9a\u5de5\u5177/\u5e93\u751f\u6210\u7684\u6587\u4ef6<br /># -------------------------------------------------------------------<br />*_i.c               # COM Interop \u751f\u6210\u6587\u4ef6<br />*_p.c               # COM Interop \u751f\u6210\u6587\u4ef6<br />*_h.h               # COM Interop \u751f\u6210\u6587\u4ef6<br />*.ilk               # \u589e\u91cf\u94fe\u63a5\u5668\u6587\u4ef6<br />*.aps               # Visual C++ \u6587\u4ef6 (\u5982\u679c\u6df7\u5408\u4f7f\u7528)<br />*.ncb               # Visual C++ \u6587\u4ef6 (\u5982\u679c\u6df7\u5408\u4f7f\u7528)<br />*.plg               # Visual C++ \u6587\u4ef6 (\u5982\u679c\u6df7\u5408\u4f7f\u7528)<br /><br /># Resharper (\u5982\u679c\u4f7f\u7528)<br /># -------------------------------------------------------------------<br />_ReSharper*/        # ReSharper \u7f13\u5b58/\u8bbe\u7f6e<br />*.[Rr]e[Ss]harper   # ReSharper \u6587\u4ef6<br /><br /># \u8bc1\u4e66\u548c\u5bc6\u94a5\u6587\u4ef6 (\u7edd\u4e0d\u5e94\u63d0\u4ea4)<br /># -------------------------------------------------------------------<br />*.pfx               # \u4e2a\u4eba\u4fe1\u606f\u4ea4\u6362\u6587\u4ef6 (\u8bc1\u4e66\u548c\u79c1\u94a5)<br />*.p12               # PKCS#12 \u6587\u4ef6 (\u8bc1\u4e66\u548c\u79c1\u94a5)<br />*.key               # \u79c1\u94a5\u6587\u4ef6<br /><br /># Docker \u76f8\u5173 (\u5982\u679c\u4f7f\u7528 Docker)<br /># -------------------------------------------------------------------<br />docker-compose.override.yml # \u672c\u5730 Docker Compose \u8986\u76d6\u6587\u4ef6<br />.dockerignore           # \u6ce8\u610f\uff1a\u8fd9\u4e0d\u662f gitignore \uff0c\u4f46\u5e38\u4e0e Dockerfile \u653e\u5728\u4e00\u8d77<br /><br /># Profiler / Memory Dump Files<br /># -------------------------------------------------------------------<br />*.psess             # Visual Studio Profiler Session<br />*.vsp               # Visual Studio Profiler Report<br />*.vspx              # Visual Studio Profiler Report<br />*.sap               # Visual Studio Profiler File<br />*.diagsession       # Visual Studio Diagnostic Session<br />*.dmp               # Memory dump \u6587\u4ef6<br /><br /># BenchmarkDotNet (\u5982\u679c\u4f7f\u7528)<br /># -------------------------------------------------------------------<br />BenchmarkDotNet.Artifacts/<br /><br /># ~~ \u6587\u4ef6\u7ed3\u675f ~~", 
      "date_published": "2025-04-13T10:28:17+00:00", 
      "title": "C#.net9wpf \u9879\u76ee\u8fd9\u4efd.gitignore \u89c4\u5219\u53ef\u884c\u5417\uff1f\u8fd8\u6709\u4ec0\u4e48\u53ef\u4ee5\u6dfb\u52a0\u7684\u5417\uff1f", 
      "id": "https://www.v2ex.com/t/1125132"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/Patrick6", 
        "name": "Patrick6", 
        "avatar": "https://cdn.v2ex.com/avatar/93b4/49f4/453567_large.png?m=1739508578"
      }, 
      "url": "https://www.v2ex.com/t/1124744", 
      "title": "\u6709\u4eba\u8bd5\u8fc7\u4ece WCF \u8fc1\u79fb\u5230 ASP.NET Core Web API \u5417\uff1f", 
      "id": "https://www.v2ex.com/t/1124744", 
      "date_published": "2025-04-11T06:21:19+00:00", 
      "content_html": "\u8fd9\u4e2d\u95f4\u4f1a\u6709\u5565\u5947\u5947\u602a\u602a bug \u5417\uff0cwcf \u7684\u5ba2\u6237\u7aef\u5df2\u7ecf\u7528\u597d\u4e45\u4e86\uff0c\u800c\u4e14\u662f\u5305\u542b C/S \uff0cB/S \u67b6\u6784\u6df7\u6742\u4f7f\u7528\u7684"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/drymonfidelia", 
        "name": "drymonfidelia", 
        "avatar": "https://cdn.v2ex.com/gravatar/017bcef6e642dbf067e17838a9cd447a?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1121065", 
      "date_modified": "2025-03-25T16:11:33+00:00", 
      "content_html": "\u670d\u52a1\u5668\u662f aws m8g.2xlarge 8 \u6838 32GB \u5185\u5b58<br />\u6574\u4e2a\u670d\u52a1\u5668\u4e0a\u5c31\u4e00\u4e2a Docker \uff0c\u91cc\u9762\u8fd0\u884c\u8fd9\u4e2a\u670d\u52a1<br />\u4ee5\u524d .NET 5 \u7684\u90fd\u662f\u79d2\u7f16\u8bd1<br />\u73b0\u5728\u7ecf\u5e38\u8981\u534a\u4e2a\u5c0f\u65f6\uff0c\u6709\u65f6\u751a\u81f3\u4e94\u516d\u4e2a\u5c0f\u65f6\u7f16\u8bd1\u4e0d\u5b8c<br />\u6709\u65f6\u5019\u53c8\u80fd 2 \u79d2\u7f16\u8bd1\uff0c\u4e0d\u77e5\u9053\u4e3a\u4ec0\u4e48<br />`docker system prune -a` \u8fd0\u884c\u4e86\u597d\u51e0\u904d\uff0c\u6ca1\u6548\u679c<br /><br /><a target=\"_blank\" href=\"https://i.imgur.com/CaCsdr1.png\" rel=\"nofollow noopener\" target=\"_blank\"><img src=\"https://i.imgur.com/CaCsdr1.png\" class=\"embedded_image\" rel=\"noreferrer\"></a><br /><br />\u5f00 Debug \u662f\u56e0\u4e3a\u521a\u624d\u60f3\u8bd5\u8bd5\u662f\u4e0d\u662f Release \u5bfc\u81f4\u7684\u7f16\u8bd1\u7f13\u6162\u624d\u6539\u7684\uff0c\u5e76\u4e0d\u662f\u5bfc\u81f4\u95ee\u9898\u7684\u539f\u56e0", 
      "date_published": "2025-03-25T16:10:17+00:00", 
      "title": "\u9879\u76ee\u4ece.NET5.0 \u5347\u7ea7\u5230 8.0\uff0c\u52a0\u8d77\u6765 1.5 \u4e07\u884c\u4ee3\u7801\uff0c Linux \u4e0b\u7f16\u8bd1\u7ecf\u5e38\u8981\u534a\u4e2a\u5c0f\u65f6\uff0c\u6709\u7684\u65f6\u5019\u53c8\u51e0\u79d2\u949f\u5c31\u80fd\u7f16\u8bd1\u5b8c\uff0c Windows \u4e0b\u4e00\u76f4\u975e\u5e38\u6b63\u5e38\uff0c\u600e\u4e48\u6392\u67e5\uff1f", 
      "id": "https://www.v2ex.com/t/1121065"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/jroger", 
        "name": "jroger", 
        "avatar": "https://cdn.v2ex.com/avatar/5d27/294a/471404_large.png?m=1742003241"
      }, 
      "url": "https://www.v2ex.com/t/1118590", 
      "title": "\u5206\u4eab\u4e00\u4e2a\u4f7f\u7528 C#\u5c01\u88c5\u7684 gRPC \u7ec4\u4ef6", 
      "id": "https://www.v2ex.com/t/1118590", 
      "date_published": "2025-03-15T01:54:06+00:00", 
      "content_html": "<p>\u5f00\u53d1\u8fd9\u4e2a\u7ec4\u4ef6\u7684\u539f\u7531\uff1a\u6700\u5f00\u59cb\u63a5\u89e6\u7684\u670d\u52a1\u95f4\u901a\u4fe1\u662f\u4f7f\u7528\u7684 <code>WCF</code>\uff0c\u540e\u6765\u4f7f\u7528\u4e86 <code>gRPC</code> \u540e\uff0c\u56e0\u4e3a\u4e0d\u60f3\u5b9a\u4e49 proto \u6587\u4ef6\uff0c\u5c31\u5728\u60f3\u6709\u6ca1\u6709\u529e\u6cd5\u50cf\u7528 <code>WCF</code> \u4e00\u6837\u4f7f\u7528 <code>gRPC</code>\uff0c\u7ecf\u8fc7\u6478\u7d22\u540e\uff0c\u5c31\u6709\u4e86\u73b0\u5728\u8fd9\u4e2a\u7ec4\u4ef6\u3002</p>\n<p>\u5982\u679c\u4f60\u4e5f\u6709\u548c\u6211\u7c7b\u4f3c\u7684\u60f3\u6cd5\uff0c\u6b22\u8fce\u8bd5\u7528\u3002</p>\n<p>\u5730\u5740\u5728<a href=\"https://github.com/netcore-jroger/SimpleRpc\" rel=\"nofollow\">\u8fd9\u91cc</a></p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/drymonfidelia", 
        "name": "drymonfidelia", 
        "avatar": "https://cdn.v2ex.com/gravatar/017bcef6e642dbf067e17838a9cd447a?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1113916", 
      "date_modified": "2025-02-24T10:31:48+00:00", 
      "content_html": "Avalonia \u4e00\u4e2a\u5927\u95ee\u9898\u662f Breaking Changes \u8fc7\u591a\uff0c\u5b98\u7f51\u90fd\u80fd\u6709\u4e00\u5806 bug <a target=\"_blank\" href=\"/t/1015029\" rel=\"nofollow noopener\">/t/1015029</a><br />\u6587\u672c\u8f93\u5165\u6846\u548c Flutter \u4e00\u6837\u7528\u8d77\u6765\u5f88\u4e0d Native \uff0c\u6587\u672c\u591a\u7684\u65f6\u5019\u7ecf\u5e38\u4f1a\u53d8\u900f\u660e\uff0c\u6709\u4e00\u4e9b\u83ab\u540d\u5176\u5999\u7684\u95ee\u9898<br />AI \u51e0\u4e4e\u5199\u4e0d\u4e86\uff0c\u5168\u90fd\u5728\u80e1\u8a00\u4e71\u8bed <a target=\"_blank\" href=\"/t/1110486\" rel=\"nofollow noopener\">/t/1110486</a>", 
      "date_published": "2025-02-24T10:29:32+00:00", 
      "title": "C# .NET \u73b0\u5728\u76f8\u5bf9\u6210\u719f\u7684\u8de8\u5e73\u53f0 UI \u6846\u67b6\u662f\u5426\u8fd8\u662f\u53ea\u6709 Avalonia\uff1f MAUI \u600e\u4e48\u6837\u4e86", 
      "id": "https://www.v2ex.com/t/1113916"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/drymonfidelia", 
        "name": "drymonfidelia", 
        "avatar": "https://cdn.v2ex.com/gravatar/017bcef6e642dbf067e17838a9cd447a?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1104824", 
      "date_modified": "2025-01-13T13:56:56+00:00", 
      "content_html": "<p>\u867d\u7136\u540e\u53f0\u6162\u4e0d\u662f\u4e0d\u80fd\u7528\uff0c\u4f46\u662f\u9500\u552e\u4e00\u76f4\u5728\u53cd\u6620\u64cd\u4f5c\u5f88\u6162\u8ba9\u4f18\u5316\u3002\u9500\u552e\u540e\u53f0\u65f6\u95f4\u9009\u62e9\u5668\u7c92\u5ea6\u53ea\u7cbe\u786e\u5230\u5929\uff0c\u4e0d\u77e5\u9053\u8fd9\u4e2a\u5730\u65b9\u662f\u4e0d\u662f\u53ef\u4ee5\u505a\u4ec0\u4e48\u6548\u679c\u6bd4\u8f83\u597d\u7684\u4f18\u5316\u3002</p>\n<p>\u6b63\u5e38\u60c5\u51b5\u4e0b\u65e5\u8ba2\u5355\u5728\u4e94\u767e\u4e07\u5de6\u53f3\u3002\u8fd9\u4e2a\u9875\u9762\u9700\u8981\u663e\u793a\u6bcf\u4e2a SKU \u5728\u4e0d\u540c\u9636\u6bb5\uff08\u72b6\u6001\uff09\u7684\u8ba2\u5355\u7684\u6570\u91cf\u3002\u6709\u8003\u8651\u8fc7\u7528 Redis \u4f46\u662f\u6211\u4eec\u7684 Redis \u662f\u5355\u673a\u7684\u53ea\u7528\u6765\u7f13\u5b58\uff0c\u7ecf\u5e38 flushall \u3002\u518d\u5355\u72ec\u52a0\u4e00\u53f0 Redis \u89c9\u5f97\u4e0d\u5212\u7b97</p>\n<pre><code>return Ok(dbContext.Orders.Where(x =&gt; x.CreatedAt &gt;= DateTimeOffset.FromUnixTimeMilliseconds(queryForm.StartDate) &amp;&amp;\n                                             x.CreatedAt &lt;= DateTimeOffset.FromUnixTimeMilliseconds(queryForm.EndDate))\n            .Include(x =&gt; x.Sku).Where(x =&gt; x.Sku != null)\n            .GroupBy(o =&gt; o.SkuId)\n            .Select(g =&gt; new\n            {\n                SkuId = g.Key,\n                SkuName = g.Select(o =&gt; o.Sku.TitleEng).FirstOrDefault(),\n                Delivering = g.Count(o =&gt; o.Status == (int)OrderStatusEnum.Delivering),\n                Cancelled = g.Count(o =&gt; o.Status == (int)OrderStatusEnum.Cancelled),\n                InProcess = g.Count(o =&gt; o.Status == (int)OrderStatusEnum.InProcess),\n                InReview = g.Count(o =&gt; o.ReviewTasks.Any(t =&gt; t.Pending &amp;&amp; t.Result == false)),\n                Total = g.Count()\n            })\n            .ToList());\n</code></pre>\n<p>\u80fd\u60f3\u5230\u7684\u7d22\u5f15\u90fd\u5df2\u7ecf\u52a0\u4e86</p>\n<pre><code>[Index(nameof(Status))]\n[Index(nameof(Input))]\n[Index(nameof(SkuId))]\n[Index(nameof(UserId))]\n[Index(nameof(CreatedAt))]\n[Index(nameof(UpdatedAt))]\n[Index(nameof(OrderTag))]\n[Index(nameof(SendPending))]\n[Index(nameof(OrderSource))]\n[Index(nameof(UserId), nameof(SkuId), nameof(FromMobileApp))]\n[Index(nameof(UserId), nameof(Status))]\n[Index(nameof(SkuId), nameof(Status))]\n[Index(nameof(Status), nameof(RiskyScore))]\n[Index(nameof(UserId), nameof(Input))]\n[Index(nameof(UserId), nameof(InputTailing))]\npublic class Order : BaseEntity\n{ ... }\n</code></pre>\n", 
      "date_published": "2025-01-13T13:47:06+00:00", 
      "title": "ASP .NET Core + EF Core + MySQL \u8fd9\u4e2a\u7edf\u8ba1\u67e5\u8be2\u5728 3 \u4ebf\u6761\u8bb0\u5f55\u7684\u8868\u4e0b\u6bcf\u6b21\u67e5\u8be2\u90fd\u9700\u8981 2~4 \u5206\u949f\uff0c\u4f18\u5316\u7684\u529e\u6cd5\u53ea\u6709\u7528\u89e6\u53d1\u5668\u6216\u662f\u540e\u53f0\u6bcf\u5c0f\u65f6\u5b9a\u671f\u7edf\u8ba1\u5417\uff1f", 
      "id": "https://www.v2ex.com/t/1104824"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/drymonfidelia", 
        "name": "drymonfidelia", 
        "avatar": "https://cdn.v2ex.com/gravatar/017bcef6e642dbf067e17838a9cd447a?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1100049", 
      "title": "Avalonia UI \u66f4\u65b0\u5230 11 \u4ee5\u540e\u542f\u52a8\u6162\u6709\u529e\u6cd5\u4f18\u5316\u5417\uff1f", 
      "id": "https://www.v2ex.com/t/1100049", 
      "date_published": "2024-12-24T19:16:28+00:00", 
      "content_html": "<p>\u672c\u6765\u5c31\u4e0d\u662f\u5f88\u5feb\uff0c\u66f4\u65b0\u5230 11 \u540e\u7b80\u76f4\u548c Flutter \u4e00\u6837\u6162\u4e86\u3002\u4e3a\u4e86\u6392\u9664\u6211\u5199\u7684\u4ee3\u7801\u7684\u95ee\u9898\uff0c\u6211\u5efa\u4e86\u4e00\u4e2a\u7a7a\u9879\u76ee\uff0c\u542f\u52a8\u4e5f\u8981 4 \u79d2\uff0c\u5728 macOS \u4e0a\u662f\u5f39\u8df3 3 \u6b21\u3002</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/drymonfidelia", 
        "name": "drymonfidelia", 
        "avatar": "https://cdn.v2ex.com/gravatar/017bcef6e642dbf067e17838a9cd447a?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1099682", 
      "title": "EF Core \u8fd9\u7c7b\u8f83\u91cd\u7684 ORM \u6846\u67b6\u9002\u5408\u585e\u8fdb\u5ba2\u6237\u7aef\u5417\uff1f\u5982\u679c\u662f\u7528\u4e8e\u672c\u5730 SQLite \u6570\u636e\u5e93\uff0c\u6709\u6ca1\u6709\u66f4\u597d\u7684\u9009\u62e9\uff1f", 
      "id": "https://www.v2ex.com/t/1099682", 
      "date_published": "2024-12-23T08:03:23+00:00", 
      "content_html": ""
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/allplay", 
        "name": "allplay", 
        "avatar": "https://cdn.v2ex.com/gravatar/a1fea407eee1f0a1da3a96a9915d66d0?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1095210", 
      "title": "Windows \u666e\u901a\u7528\u6237\uff0c\u53ef\u5426\u7981\u7528\u7cfb\u7edf\u81ea\u5e26.net 3.5/4.8\uff0c\u4ec5\u5b89\u88c5\u6700\u65b0.net 8/9\uff1f", 
      "id": "https://www.v2ex.com/t/1095210", 
      "date_published": "2024-12-05T05:03:57+00:00", 
      "content_html": "\u5728 Windows Update \u4e2d\uff0c\u8fd9\u4e24\u5957\u90fd\u4f1a\u6709\u66f4\u65b0\u3002<br />\u53ef\u5426\u5728\u542f\u7528\u6216\u5173\u95ed Windows <a target=\"_blank\" href=\"http://\u529f\u80fd\u4e2d\u7981\u7528\u81ea\u5e26\u7684.net\" rel=\"nofollow noopener\">\u529f\u80fd\u4e2d\u7981\u7528\u81ea\u5e26\u7684.net</a> framework 3.5 4.8 \u3002<a target=\"_blank\" href=\"http://\u7136\u540e\u4ece\u5fae\u8f6f\u5b98\u65b9\u4e0b\u8f7d\u6700\u65b0\u7684.net\" rel=\"nofollow noopener\">\u7136\u540e\u4ece\u5fae\u8f6f\u5b98\u65b9\u4e0b\u8f7d\u6700\u65b0\u7684.net</a> 8/9 \u8fd0\u884c\u65f6\u3002<br />\u8fd9\u6837\u51cf\u5c11\u5197\u4f59\u3001bug \u3002"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/drymonfidelia", 
        "name": "drymonfidelia", 
        "avatar": "https://cdn.v2ex.com/gravatar/017bcef6e642dbf067e17838a9cd447a?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1091813", 
      "date_modified": "2024-11-22T07:05:05+00:00", 
      "content_html": "<pre><code class=\"language-csharp\">using System;\nusing System.Reactive.Linq;\nusing System.Reactive.Subjects;\n\npublic class BasicMessageBus\n{\n    private static readonly BasicMessageBus _instance = new();\n    public static BasicMessageBus Inst =&gt; _instance;\n\n    private readonly Subject&lt;object&gt; _messages = new();\n    public IObservable&lt;T&gt; Subscribe&lt;T&gt;() =&gt; _messages.OfType&lt;T&gt;();\n    public void Send(object message) =&gt; _messages.OnNext(message);\n}\n</code></pre>\n", 
      "date_published": "2024-11-22T07:01:34+00:00", 
      "title": "\u540c\u4e00\u7a0b\u5e8f\u5185\u7684\u6d88\u606f\u961f\u5217\uff0c\u8fd9\u6837\u7528\u5355\u4f8b\u7684\u7b80\u6613\u5b9e\u73b0\u6bd4 redis \u7684 Pub-Sub \u6548\u7387\u9ad8\u5417\uff1f\u5982\u679c\u4e0d\u5b9e\u73b0 Unsubscribe\uff0c\u6709\u5185\u5b58\u6cc4\u6f0f\u98ce\u9669\u5417\uff1f", 
      "id": "https://www.v2ex.com/t/1091813"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/drymonfidelia", 
        "name": "drymonfidelia", 
        "avatar": "https://cdn.v2ex.com/gravatar/017bcef6e642dbf067e17838a9cd447a?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1091008", 
      "date_modified": "2024-11-19T19:02:21+00:00", 
      "content_html": "\u4e00\u76f4\u7528\u8001\u7248\u672c Avalonia \uff0c\u6700\u8fd1\u624d\u5f00\u59cb\u7ed9\u65b0\u9879\u76ee\u4e0a 11 \u3002Avalonia \u8fd9\u4e2a\u6846\u67b6\u5411\u4e0b\u517c\u5bb9\u4e00\u76f4\u505a\u7684\u633a\u5dee\u7684\uff0c\u6bcf\u6b21\u66f4\u65b0\u5927\u7248\u672c\u53f7\u90fd\u6539\u4e00\u4e9b\u8bed\u6cd5\u3002\u7279\u522b\u662f\u5f00\u59cb\u652f\u6301\u79fb\u52a8\u7aef\u540e breaking changes \u8d85\u7ea7\u591a\uff0c\u4e5f\u7b97\u53ef\u4ee5\u7406\u89e3\u3002<br /><br />\u7136\u540e\u53d1\u73b0\"{Binding $parent[ItemsControl].DataContext.ParentCommand}\" \u8fd9\u79cd\u5199\u6cd5\u4e0d\u80fd\u7528\u4e86\uff0c\u4f1a\u62a5\u9519 Unable to resolve property or method of name 'ParentCommand' on type 'System.Object'\u3002GPT-4 \u548c Claude \u90fd\u5b8c\u5168\u4e0d\u61c2\u8fd9\u4e2a\u53d8\u5316\uff0c\u4e00\u76f4\u6307\u5bfc\u6211\u6392\u67e5\u522b\u7684\u4e1c\u897f\uff0c\u6298\u817e\u4e86\u597d\u4e45\u4e5f\u6ca1\u89e3\u51b3\u3002<br /><br />\u53ea\u597d\u53bb Discord \u4e0a\u95ee\u7fa4\u53cb\uff0c\u7fa4\u53cb\u8bf4\u662f 11 \u65b0\u52a0\u7684 CompileBindings \u5bfc\u81f4\u7684\uff0c\u9ed8\u8ba4\u5f00\u542f\uff0c\u5fc5\u987b\u628a CompileBindings \u5173\u6389\uff0c\u6216\u8005\u6bcf\u6b21\u8c03\u7528 Parent Command \u90fd\u5199 Command=\"{Binding $parent[ItemsControl].((vm:ParentViewModel)DataContext).ParentCommand}\" \u8fd9\u4e48\u957f\u4e00\u5927\u5768\u3002\uff08\u4e0d\u5199 .NET \u7684 v \u53cb\u53ef\u4ee5\u7406\u89e3\u4e3a\u6bcf\u6b21\u4ece for \u5faa\u73af\u91cc call \u4e00\u4e2a\u5faa\u73af\u5916\u9762\u7684\u51fd\u6570\u8981\u5199 89 \u4e2a\u5b57\u7b26\uff09\u4ece list \u8c03\u7528\u6bcd vm \u7684 Command \u53ef\u662f\u4e00\u4e2a\u975e\u5e38\u5e38\u89c1\u7684\u64cd\u4f5c\uff0c\u672c\u6765\u5199 $parent[ItemsControl].DataContext.ParentCommand \u5c31\u5df2\u7ecf\u5f88\u957f\u5f88\u96be\u770b\uff0c\u73b0\u5728\u8fd8\u8981\u518d\u52a0\u4e00\u6bb5\u3002\u4e3a\u4ec0\u4e48\u5c31\u4e0d\u89e3\u51b3\u4e00\u4e0b\u5462\uff1f", 
      "date_published": "2024-11-19T18:56:13+00:00", 
      "title": "Avalonia 11 \u540e\u8981\u4ece ItemsControl \u8c03\u7528\u6bcd UserControl \u7684\u547d\u4ee4\u8fd9\u79cd\u5e38\u89c1\u64cd\u4f5c\u5c31\u5fc5\u987b\u6bcf\u6b21\u90fd\u5199\u8fd9\u4e48\u957f\u4e00\u5768\u4e1c\u897f\u5417\uff1f", 
      "id": "https://www.v2ex.com/t/1091008"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/drymonfidelia", 
        "name": "drymonfidelia", 
        "avatar": "https://cdn.v2ex.com/gravatar/017bcef6e642dbf067e17838a9cd447a?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1082187", 
      "title": ".NET build \u5230 wasm \u540e\u600e\u4e48\u770b\u9519\u8bef\u4ee3\u7801\u5728\u54ea\u4e2a .cs \u6587\u4ef6\u7684\u54ea\u4e2a\u4f4d\u7f6e\uff1f DevTools \u548c\u90a3\u4e2a Debug URL \u91cc\u90fd\u53ea\u80fd\u770b\u5230 e.Message", 
      "id": "https://www.v2ex.com/t/1082187", 
      "date_published": "2024-10-21T06:27:42+00:00", 
      "content_html": "<p><img alt=\"\" class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://i.ibb.co/LCvb3YJ/Screenshot.jpg\"/></p>\n<p>\u5728\u8c03\u8bd5\u6a21\u5f0f\u4e0b\u4e5f\u53ea\u6709\u8fd9\u4e00\u70b9\u9519\u8bef\u4fe1\u606f\uff0c\u95ee\u9898\u51fa\u5728\u54ea\u884c\u4ee3\u7801\u548c\u9519\u8bef\u5806\u6808\u90fd\u6ca1\u6709\u6253\u5370\uff0cIDE \u91cc\u4e5f\u4e0d\u80fd\u50cf\u684c\u9762\u5e94\u7528\u4e00\u6837\u81ea\u52a8\u6682\u505c\u4e0b\u65ad\u70b9</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/drymonfidelia", 
        "name": "drymonfidelia", 
        "avatar": "https://cdn.v2ex.com/gravatar/017bcef6e642dbf067e17838a9cd447a?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1082172", 
      "date_modified": "2024-10-21T06:00:05+00:00", 
      "content_html": "\u4f1a\u4e0d\u4f1a\u50cf npm \u4e00\u6837\u88c5\u4e2a\u5168\u5c40\u5305\u8981 root \u6743\u9650\uff1f\u76ee\u524d\u6211\u53ea\u53d1\u73b0\u4ee5\u524d\u4e0d\u7528 root \u5b89\u88c5\u7684 workload \u73b0\u5728\u9700\u8981 root \u6743\u9650\u4e86<br />Homebrew \u793e\u533a\u7ef4\u62a4\u7684\u5b89\u88c5\u811a\u672c\u7ecf\u5e38\u6709\u83ab\u540d\u5176\u5999\u7684\u95ee\u9898\uff0c\u6bd4\u8d77\u793e\u533a\u6211\u8fd8\u662f\u66f4\u613f\u610f\u76f8\u4fe1\u5927\u7684\u5546\u4e1a\u516c\u53f8", 
      "date_published": "2024-10-21T05:56:18+00:00", 
      "title": "macOS \u5355\u7528\u6237\u73af\u5883 dotnet \u88c5\u5728 ~/.dotnet/ \u8fd8\u662f /usr/local/share/dotnet/ \u66f4\u597d\uff1f Rider \u9ed8\u8ba4\u662f\u524d\u8005\uff0c\u5b98\u7f51\u4e0b\u8f7d\u7684 .pkg \u9ed8\u8ba4\u662f\u540e\u8005", 
      "id": "https://www.v2ex.com/t/1082172"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/bthulu", 
        "name": "bthulu", 
        "avatar": "https://cdn.v2ex.com/gravatar/c87484c1062f990c6ef9e1a9c27bdc60?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1078596", 
      "title": "efcore \u4e2d, \u4f7f\u7528 FromSql \u67e5\u8be2\u65f6, \u5982\u4f55\u8bbe\u7f6e where in \u53c2\u6570?", 
      "id": "https://www.v2ex.com/t/1078596", 
      "date_published": "2024-10-09T08:01:09+00:00", 
      "content_html": "<p>\u50cf\u4e0b\u9762\u8fd9\u6837, \u662f\u67e5\u4e0d\u51fa\u6765\u7684. \u662f\u6709\u4ec0\u4e48\u7279\u6b8a\u59ff\u52bf\u6211\u4e0d\u4f1a\u7684\u5417? google \u4e86\u534a\u5929\u4e5f\u6ca1\u627e\u51fa\u6765\u600e\u4e48\u4f20\u9012\u96c6\u5408\u53c2\u6570\u8fdb\u53bb.</p>\n<pre><code class=\"language-c#\">var ids = new List&lt;string&gt;() { \"A001\", \"B001\" };\nappDbContext.RackTransfers.FromSql($\"select * from RackTransfers where Id IN ({ids})\");\n</code></pre>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/drymonfidelia", 
        "name": "drymonfidelia", 
        "avatar": "https://cdn.v2ex.com/gravatar/017bcef6e642dbf067e17838a9cd447a?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1076054", 
      "date_modified": "2024-09-26T09:09:27+00:00", 
      "content_html": "\u8fd9\u4e00\u5e74\u5728 V \u7ad9\u5173\u4e8e\u8fd9\u4e2a\u95ee\u9898\u5df2\u7ecf\u53d1\u4e86\u597d\u51e0\u4e2a\u8d34\u4e86\uff0c\u4e00\u76f4\u6ca1\u89e3\u51b3 <a target=\"_blank\" href=\"/t/1037900\" rel=\"nofollow noopener\">/t/1037900</a><br />\u5df2\u7ecf\u4ece <a target=\"_blank\" href=\"http://ASP.NET\" rel=\"nofollow noopener\">ASP.NET</a> Core 5 \u5347\u7ea7\u5230 6 \u4e86\uff0c\u4e4b\u524d\u5347\u8fc7 8 \u5185\u5b58\u6cc4\u9732\u66f4\u4e25\u91cd\u4e86\uff0c\u53c8\u9000\u56de 6<br />\u6700\u65e9\u52a0\u6bcf 5 \u5206\u949f\u5f3a\u5236 GC \u4e00\u6b21\uff0c\u7f13\u89e3\u4e86\u51e0\u4e2a\u6708\uff0c\u53c8\u5f00\u59cb\u4e24\u5929\u4e00\u5d29<br />\u7136\u540e\u641e\u4e86\u53cc\u5b9e\u4f8b\u8d1f\u8f7d\u5747\u8861\uff0c\u4e24\u53f0\u673a\u5668 4 \u5c0f\u65f6\u91cd\u542f\u4e00\u6b21\uff0c\u91cd\u542f\u65f6\u95f4\u9519\u5f00\uff0c\u7f13\u89e3\u4e86\u51e0\u4e2a\u6708<br />\u6700\u8fd1\u8bf7\u6c42\u91cf\u7ffb\u4e86\u4e24\u500d\uff0c\u7136\u540e\u53d8\u6210\u4e86\u4e00\u5c0f\u65f6\u4e00\u5d29\uff0c\u8fd9\u4e48\u9891\u7e41\u91cd\u542f\u518d\u63a5\u4e0b\u53bb\u80af\u5b9a\u4f1a\u51fa\u73b0\u91cd\u542f\u4e5f\u89e3\u51b3\u4e0d\u4e86\u95ee\u9898\u7684\u60c5\u51b5\uff0c\u53ea\u597d\u518d\u6765\u6c42\u52a9<br />\u76ee\u524d\u8bf7\u6c42\u91cf\u662f\u6bcf\u5929 6~9 \u5343\u4e07\uff08\u5ba2\u6237\u7aef\u5927\u91cf\u8f6e\u8be2\u8bf7\u6c42\uff0c\u968f\u786c\u4ef6\u5206\u53d1\u65e0\u6cd5\u66f4\u65b0\uff0c\u5bfc\u81f4\u8bf7\u6c42\u91cf\u6bd4\u8f83\u5927\uff09<br />\u6309\u7167 <a target=\"_blank\" href=\"https://learn.microsoft.com/zh-cn/dotnet/core/diagnostics/debug-memory-leak\" rel=\"nofollow noopener\">https://learn.microsoft.com/zh-cn/dotnet/core/diagnostics/debug-memory-leak</a> \u7684\u6559\u7a0b\uff0c\u8fd0\u884c 10 \u5206\u949f\u540e\u6293\u53d6 dump \u7684 heap statistics \u5982\u4e0b<br /><a target=\"_blank\" href=\"https://pastebin.com/BnxB8S0R\" rel=\"nofollow noopener\">https://pastebin.com/BnxB8S0R</a><br /><br />\u53e6\u5916 analyze \u7684\u65f6\u5019\u6240\u6709\u547d\u4ee4\u90fd\u63d0\u793a ERROR: The GC heap is not in a valid state for traversal.  (Use -ignoreGCState to override.) \u52a0\u4e0a -ignoreGCState \u53c8\u4e0d\u8fd4\u56de\u5185\u5bb9\uff0c\u4e0d\u77e5\u9053\u4e3a\u4ec0\u4e48\uff0cstackoverflow \u4e0a\u7684\u51e0\u4e2a\u65b9\u6cd5\u90fd\u65e0\u6548", 
      "date_published": "2024-09-26T09:00:02+00:00", 
      "title": "\u6709\u6ca1\u6709 .NET \u5927\u795e\u5e2e\u5fd9\u770b\u770b\u56f0\u6270\u4e86\u597d\u51e0\u4e2a\u5927\u795e\u4e00\u5e74\u7684\u5185\u5b58\u6cc4\u9732\u95ee\u9898\uff0c\u4f18\u5316\u4e86\u4e00\u5e74\u8d8a\u53d8\u8d8a\u4e25\u91cd\uff0c\u73b0\u5728\u4e00\u5c0f\u65f6\u5d29\u4e00\u6b21", 
      "id": "https://www.v2ex.com/t/1076054"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/lizhien", 
        "name": "lizhien", 
        "avatar": "https://cdn.v2ex.com/gravatar/1b49e29387865313b37ee6a8b7b31cd3?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1073286", 
      "title": "\u6709\u7528\u8fc7 SQLSugar \u7684\u5417\uff1f\u80fd\u8bf4\u8bf4\u4f53\u9a8c\u5417\uff1f", 
      "id": "https://www.v2ex.com/t/1073286", 
      "date_published": "2024-09-16T01:00:30+00:00", 
      "content_html": "<p>.net \u83dc\u9e1f\uff0c\u53ea\u7528\u8fc7 dapper \u548c efcore\n\u770b\u5230\u8fd9\u4e2a orm \uff0c\u5b98\u7f51\u8bf4\u7684\u90a3\u4e48\u725b\u903c\uff0c<a href=\"http://\u53ef\u4ee5\u8bf4\u662f.net\" rel=\"nofollow\">\u53ef\u4ee5\u8bf4\u662f.net</a> \u6700\u725b\u903c\u7684 orm \u4e86\uff0c\u60f3\u5728\u65b0\u9879\u76ee\u91cc\u8bd5\u8bd5\n\u4f46\u4e0d\u77e5\u9053\u5b9e\u9645\u4f53\u9a8c\u5982\u4f55\uff0c\u771f\u6709\u90a3\u4e48\u597d\u7528\u5417\uff1f\n\u6211\u770b v2 \u90fd\u662f\u8bf4\u7684 efcore \uff0c\u5f88\u5c11\u8bf4 sqlsugar \u7684\n\u6709\u6ca1\u6709\u5927\u4f6c\u80fd\u8bf4\u4e00\u4e0b\u8fd9\u4e2a orm \u5417\uff1f</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/maymay5", 
        "name": "maymay5", 
        "avatar": "https://cdn.v2ex.com/avatar/73b4/34c3/651503_large.png?m=1757313575"
      }, 
      "url": "https://www.v2ex.com/t/1072092", 
      "title": ".NET \u5927\u725b\u4eec\uff0c\u8fd9\u6b21\u9047\u5230\u4e86\u4e00\u4e2a\u6d89\u53ca\u77e5\u8bc6\u76f2\u533a\u7684 BUG\uff0c\u4e0e Redis \u6709\u5173", 
      "id": "https://www.v2ex.com/t/1072092", 
      "date_published": "2024-09-11T11:14:49+00:00", 
      "content_html": "<ul>\n<li>\n<p>\u95ee\u9898\u573a\u666f\uff1a\u6211\u7684 webapi \u4e0e Redis \u8bfb\u5199\u64cd\u4f5c\u6709\u5173\u7684 API \u5168\u90e8\u4f1a 500</p>\n</li>\n<li>\n<p>\u68c0\u67e5\uff1aRedis \u670d\u52a1\u4e00\u5207\u6b63\u5e38</p>\n</li>\n<li>\n<p>\u4fee\u590d\u65b9\u6cd5\uff1a\u6e05\u7a7a\u6240\u6709\u7f13\u5b58</p>\n</li>\n<li>\n<p>\u65e0\u6cd5\u7406\u89e3\u7684\u7279\u6b8a\u73b0\u8c61\uff1a\u6211\u6709\u4e24\u4e2a webapi \uff0c\u4e00\u4e2a\u7528\u7684 db5 \uff0c\u4e00\u4e2a\u7528\u7684 db1 \uff0c\u6211\u731c\u6d4b\u662f db5 \u51fa\u4e86\u95ee\u9898\uff0c\u4f46\u662f db1 \u7684 api \u4e5f\u4e00\u8d77\u6302\u6389\u4e86\uff0c\u7136\u540e\u6211\u6e05\u7a7a\u4e86 db5 \uff0c\u6240\u6709\u670d\u52a1\u5168\u90e8\u6b63\u5e38\u4e86</p>\n</li>\n<li>\n<p>\u4e0b\u9762\u662f\u5c0f\u5f1f debug \u5230\u7684\u4e00\u6bb5\u5f02\u5e38\uff0c\u6211\u95ee\u4e86 GPT \uff0c\u8bf4\u8fd9\u662f\u548c <code>\u7f13\u5b58\u526f\u672c</code> \u76f8\u5173\u7684\u5f02\u5e38\uff0c\u53ef\u662f\u6211\u7684\u7cfb\u7edf\u5e76\u6ca1\u6709\u505a\u8d1f\u8f7d\u5747\u8861\u7c7b\u7684\u90e8\u7f72\uff0c\u6240\u4ee5\u8bf7\u6559\u5404\u4f4d\u5927\u4f6c\uff0c\u8fd9\u5230\u5e95\u662f\u600e\u4e48\u9020\u6210\u7684\uff1f</p>\n</li>\n</ul>\n<pre><code class=\"language-shell\">fail: Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware[1]\n      An unhandled exception has occurred while executing the request.\n      StackExchange.Redis.RedisCommandException: Command cannot be issued to a replica: DEL cache_4f4bc6e0-4278-d758-4312-3be96b11d34e\n         at StackExchange.Redis.ConnectionMultiplexer.PrepareToPushMessageToBridge[T](Message message, ResultProcessor`1 processor, IResultBox`1 resultBox, ServerEndPoint&amp; server) in /_/src/StackExchange.Redis/ConnectionMultiplexer.cs:line 1967\n         at StackExchange.Redis.ConnectionMultiplexer.TryPushMessageToBridgeAsync[T](Message message, ResultProcessor`1 processor, IResultBox`1 resultBox, ServerEndPoint&amp; server) in /_/src/StackExchange.Redis/ConnectionMultiplexer.cs:line 2013\n         at StackExchange.Redis.ConnectionMultiplexer.ExecuteAsyncImpl[T](Message message, ResultProcessor`1 processor, Object state, ServerEndPoint server) in /_/src/StackExchange.Redis/ConnectionMultiplexer.cs:line 2191\n         at StackExchange.Redis.RedisBase.ExecuteAsync[T](Message message, ResultProcessor`1 processor, ServerEndPoint server) in /_/src/StackExchange.Redis/RedisBase.cs:line 54\n         at StackExchange.Redis.RedisDatabase.KeyDeleteAsync(RedisKey key, CommandFlags flags) in /_/src/StackExchange.Redis/RedisDatabase.cs:line 758\n         at aibotPro.Service.RedisService.DeleteAsync(String key) in /Users/mayday/Desktop/GitHub/AIBot-Pro/AIBot-Pro/aibotPro/aibotPro/Service/RedisService.cs:line 75\n         at aibotPro.Service.UsersService.GenerateCodeImage(String account, String key) in /Users/mayday/Desktop/GitHub/AIBot-Pro/AIBot-Pro/aibotPro/aibotPro/Service/UsersService.cs:line 151\n         at aibotPro.Controllers.UsersController.GenerateCodeImage(String key) in /Users/mayday/Desktop/GitHub/AIBot-Pro/AIBot-Pro/aibotPro/aibotPro/Controllers/UsersController.cs:line 388\n         at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.TaskOfIActionResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)\n         at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.&lt;InvokeActionMethodAsync&gt;g__Awaited|12_0(ControllerActionInvoker invoker, ValueTask`1 actionResultValueTask)\n         at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.&lt;InvokeNextActionFilterAsync&gt;g__Awaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)\n         at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)\n         at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State&amp; next, Scope&amp; scope, Object&amp; state, Boolean&amp; isCompleted)\n         at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()\n      --- End of stack trace from previous location ---\n         at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.&lt;InvokeNextResourceFilter&gt;g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)\n         at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)\n         at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State&amp; next, Scope&amp; scope, Object&amp; state, Boolean&amp; isCompleted)\n         at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeFilterPipelineAsync()\n      --- End of stack trace from previous location ---\n         at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.&lt;InvokeAsync&gt;g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)\n         at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.&lt;InvokeAsync&gt;g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)\n         at Microsoft.AspNetCore.Routing.EndpointMiddleware.&lt;Invoke&gt;g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)\n         at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)\n         at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.&lt;Invoke&gt;g__Awaited|6_0(ExceptionHandlerMiddleware middleware, HttpContext context, Task task)\nfail: Microsoft.AspNetCore.Mvc.ViewFeatures.ViewResultExecutor[3]\n      The view 'Error' was not found. Searched locations: /Views/Home/Error.cshtml, /Views/Shared/Error.cshtml\nfail: Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware[3]\n      An exception was thrown attempting to execute the error handler.\n      System.InvalidOperationException: The view 'Error' was not found. The following locations were searched:\n      /Views/Home/Error.cshtml\n      /Views/Shared/Error.cshtml\n         at Microsoft.AspNetCore.Mvc.ViewEngines.ViewEngineResult.EnsureSuccessful(IEnumerable`1 originalLocations)\n         at Microsoft.AspNetCore.Mvc.ViewFeatures.ViewResultExecutor.ExecuteAsync(ActionContext context, ViewResult result)\n         at Microsoft.AspNetCore.Mvc.ViewResult.ExecuteResultAsync(ActionContext context)\n         at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.&lt;InvokeNextResultFilterAsync&gt;g__Awaited|30_0[TFilter,TFilterAsync](ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)\n         at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResultExecutedContextSealed context)\n         at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.ResultNext[TFilter,TFilterAsync](State&amp; next, Scope&amp; scope, Object&amp; state, Boolean&amp; isCompleted)\n         at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeResultFilters()\n      --- End of stack trace from previous location ---\n         at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.&lt;InvokeNextResourceFilter&gt;g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)\n         at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)\n         at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State&amp; next, Scope&amp; scope, Object&amp; state, Boolean&amp; isCompleted)\n         at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeFilterPipelineAsync()\n      --- End of stack trace from previous location ---\n         at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.&lt;InvokeAsync&gt;g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)\n         at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.&lt;InvokeAsync&gt;g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)\n         at Microsoft.AspNetCore.Routing.EndpointMiddleware.&lt;Invoke&gt;g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)\n         at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)\n         at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.HandleException(HttpContext context, ExceptionDispatchInfo edi)\n\n</code></pre>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/maymay5", 
        "name": "maymay5", 
        "avatar": "https://cdn.v2ex.com/avatar/73b4/34c3/651503_large.png?m=1757313575"
      }, 
      "url": "https://www.v2ex.com/t/1066048", 
      "date_modified": "2024-08-19T02:55:10+00:00", 
      "content_html": "<h1>\u7ec8\u7aef\u627e\u4e0d\u5230 SDK</h1>\n<p><img alt=\"\" class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://img2anywhere.maymay5.com/imgs/2024/08/7fff21fc6dfde2d8.png\"/></p>\n<h1>Rider <a href=\"http://\u63d0\u793a.net\" rel=\"nofollow\">\u63d0\u793a.net</a> 8</h1>\n<p><img alt=\"\" class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://img2anywhere.maymay5.com/imgs/2024/08/8fc6df6020e6842d.png\"/></p>\n", 
      "date_published": "2024-08-19T02:54:50+00:00", 
      "title": "\u6c42\u52a9\u5927\u4f6c\u4eec\uff0c\u5e72\u4e86\u4ef6\u8822\u4e8b\uff0c\u6211\u90fd\u4e0d\u7406\u89e3\u6211\u4e3a\u4ec0\u4e48\u8981\u7528 Rider \u53bb\u88c5 SDK\uff0c\u5bfc\u81f4\u73b0\u5728\u5220\u4e0d\u6389\u4e5f\u627e\u4e0d\u5230\u4e86", 
      "id": "https://www.v2ex.com/t/1066048"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/zhangeric", 
        "name": "zhangeric", 
        "avatar": "https://cdn.v2ex.com/gravatar/a0ff747c4e9c61c2e05b883ba6e83514?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1058644", 
      "title": "nuget \u670d\u52a1\u5668\u6709\u95ee\u9898\u4e86,\u4e0d\u4f1a\u4e5f\u662f\u90a3\u4e2a CrowdStrike \u51fa\u95ee\u9898\u5bfc\u81f4\u7684\u5427", 
      "id": "https://www.v2ex.com/t/1058644", 
      "date_published": "2024-07-19T09:19:00+00:00", 
      "content_html": ""
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/huzhikuizainali", 
        "name": "huzhikuizainali", 
        "avatar": "https://cdn.v2ex.com/avatar/1869/a390/522912_large.png?m=1752498684"
      }, 
      "url": "https://www.v2ex.com/t/1050797", 
      "title": "\u4e3a\u4ec0\u4e48\u6211\u5df2\u7ecf\u5728 Visual Studio \u4e2d\u5b89\u88c5\u4e86.Net 8.0\uff0c\u4f46\u662f\u547d\u4ee4\u884c\u663e\u793a\u7684\u7248\u672c\u4ecd\u7136\u662f 6.0.31\uff1f", 
      "id": "https://www.v2ex.com/t/1050797", 
      "date_published": "2024-06-19T03:05:10+00:00", 
      "content_html": "<p>\u6211\u5f53\u524d\u7528 Visual Studio \u8fdb\u884c C#\u4ee3\u7801\u8c03\u8bd5\uff0c\u5e0c\u671b\u5b66\u4e60\u4e00\u4e0b\u5355\u5143\u6d4b\u8bd5\u76f8\u5173\u77e5\u8bc6\u3002\u4eca\u5929\u521a\u521a\u5b89\u88c5\u4e86 Visual Studio \uff0c\u5e76\u201c\u5355\u72ec\u201d<a href=\"http://\u5b89\u88c5\u4e86.Net\" rel=\"nofollow\">\u5b89\u88c5\u4e86.Net</a> 8.0 \uff08\u89c1\u4e0b\u65b9\u622a\u56fe\uff09\u3002\u4f46\u662f\u5b89\u88c5\u6210\u529f\u4ee5\u540e\u6211\u8fd0\u884c dotnet --info \u663e\u793a\u7ed3\u679c\u5982\u4e0b\uff1a\n\u53ef\u4ee5\u770b\u5230 Host:Version:      6.0.31\n\u8fd9\u4e0e\u6211\u521a\u521a\u5b89\u88c5\u597d Visual Studio \uff0c<a href=\"http://\u6ca1\u6709\u5355\u72ec\u5b89\u88c5.Net\" rel=\"nofollow\">\u6ca1\u6709\u5355\u72ec\u5b89\u88c5.Net</a> 8.0 \u65f6\u7684\u60c5\u51b5\u662f\u4e00\u6837\u7684\u3002</p>\n<p>\u6211\u4e4b\u524d\u4f7f\u7528 VS code <a href=\"http://\u65f6\u662f\u5355\u72ec\u4ece\u5fae\u8f6f\u7f51\u7ad9\u4e0a\u4e0b\u8f7d\u5b89\u88c5.Net\" rel=\"nofollow\">\u65f6\u662f\u5355\u72ec\u4ece\u5fae\u8f6f\u7f51\u7ad9\u4e0a\u4e0b\u8f7d\u5b89\u88c5.Net</a> 8.0 \u3002\u5b89\u88c5\u4ee5\u540e\u8fd0\u884c dotnet --info \uff0cHost:Version: \u5f53\u65f6\u663e\u793a\u7684\u662f 8.0 \u3002 <a href=\"http://\u8bf7\u95ee\u6211\u5982\u4f55\u624d\u80fd\u5c06.Net\" rel=\"nofollow\">\u8bf7\u95ee\u6211\u5982\u4f55\u624d\u80fd\u5c06.Net</a> \u7248\u672c\u5347\u7ea7\u5230 8.0 \u5462\uff1f</p>\n<pre><code>global.json file:\n  Not found\n\nHost:\n  Version:      6.0.31\n  Architecture: x64\n  Commit:       e2ca2f8a1c\n\n.NET SDKs installed:\n  No SDKs were found.\n\n.NET runtimes installed:\n  Microsoft.AspNetCore.App 8.0.6 [C:\\Program Files\\dotnet\\shared\\Microsoft.AspNetCore.App]\n  Microsoft.NETCore.App 6.0.31 [C:\\Program Files\\dotnet\\shared\\Microsoft.NETCore.App]\n  Microsoft.NETCore.App 8.0.6 [C:\\Program Files\\dotnet\\shared\\Microsoft.NETCore.App]\n  Microsoft.WindowsDesktop.App 6.0.31 [C:\\Program Files\\dotnet\\shared\\Microsoft.WindowsDesktop.App]\n  Microsoft.WindowsDesktop.App 8.0.6 [C:\\Program Files\\dotnet\\shared\\Microsoft.WindowsDesktop.App]\n\nDownload .NET:\n  https://aka.ms/dotnet-download\n\nLearn about .NET Runtimes and SDKs:\n  https://aka.ms/dotnet/runtimes-sdk-info\n</code></pre>\n<p><a href=\"https://imgse.com/i/pkBekv9\" rel=\"nofollow\"><img alt=\"pkBekv9.png\" class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://s21.ax1x.com/2024/06/19/pkBekv9.png\"/></a></p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/huzhikuizainali", 
        "name": "huzhikuizainali", 
        "avatar": "https://cdn.v2ex.com/avatar/1869/a390/522912_large.png?m=1752498684"
      }, 
      "url": "https://www.v2ex.com/t/1049059", 
      "title": "\u6211\u4f7f\u7528 vscode\uff0c\u5982\u4f55\u5e73\u7a33\u7684\u5c06.Net7.0 \u5347\u7ea7\u5230.Net8.0?", 
      "id": "https://www.v2ex.com/t/1049059", 
      "date_published": "2024-06-12T15:04:58+00:00", 
      "content_html": "<p>\u6211\u73b0\u5728\u4f7f\u7528 vscode \u8fdb\u884c c#\u4ee3\u7801\u8c03\u8bd5\u3002<a href=\"http://\u6211\u73b0\u5728\u4f7f\u7528\u7684\u662f.net\" rel=\"nofollow\">\u6211\u73b0\u5728\u4f7f\u7528\u7684\u662f.net</a> core7.0 \u6211\u60f3\u5347\u7ea7\u5230 .net core8.0 \u3002\u6211\u627e\u5230\u5982\u4e0b\u5fae\u8f6f\u7684\u8bf4\u660e\u7f51\u9875\u3002\u4f46\u662f\u7f51\u9875\u5185\u5bb9\u6709\u70b9\u7591\u95ee\uff0c\u4e0d\u77e5\u9053\u5982\u4f55\u64cd\u4f5c\u3002</p>\n<p>1 \u3001\u7f51\u9875\u8bf4\uff1a\u66f4\u65b0 global.json \u6587\u4ef6\u3002\u4f46\u662f\u6ca1\u6709\u8bf4\u8fd9\u4e2a\u6587\u4ef6\u5728\u54ea\u91cc\uff1f\u6211\u5728 CMD \u4e2d\u8f93\u5165 dotnet --info \u8f93\u51fa\u4fe1\u606f\u4e2d\u63d0\u793a</p>\n<p>Environment variables:\nNot set</p>\n<p>global.json file:\nNot found</p>\n<p>\u6211\u95ee gpt \uff0c\u5b83\u8bf4\u201c\u5982\u679c\u9879\u76ee\u6839\u76ee\u5f55\u4e0b\u6ca1\u6709 global.json \u6587\u4ef6\uff0c\u4f60\u53ef\u4ee5\u624b\u52a8\u521b\u5efa\u4e00\u4e2a\uff1a\u201d-------------\u95ee\u9898\u662f\u6211\u6709\u5f88\u591a\u9879\u76ee\u3002\u96be\u9053\u6bcf\u4e2a\u9879\u76ee\u4e0b\u9762\u90fd\u8981\u65b0\u5efa\u4e00\u4e2a global.json \u6587\u4ef6\u3002\u90a3\u5de5\u4f5c\u91cf\u53ef\u6709\u70b9\u5927\uff01</p>\n<p>2 \u3001\u7f51\u9875\u4e0a\u8bf4\uff1a\u201c\u66f4\u65b0\u76ee\u6807\u6846\u67b6\u5c06\u9879\u76ee\u6587\u4ef6\u7684\u76ee\u6807\u6846\u67b6\u540d\u5b57\u5bf9\u8c61 (TFM) \u66f4\u65b0\u4e3a net8.0\uff1a\u201d</p>\n<p>----\u6211\u5bf9\u8fd9\u53e5\u8bdd\u7684\u7406\u89e3\u662f\u66f4\u65b0\u9879\u76ee\u4e0b\u7684 project \u6587\u4ef6\u3002\u4e5f\u5c31\u662f.csproj \u6587\u4ef6\u3002\u53ef\u662f\u6bcf\u4e2a\u9879\u76ee\u4e0b\u90fd\u6709\u597d\u591a.csproj \u6587\u4ef6\u3002\u96be\u9053\u90fd\u8981\u66f4\u65b0\uff1f</p>\n<pre><code>gpt \u7684\u56de\u7b54\u662f\u201c\u786e\u5b9e\uff0c\u5bf9\u4e8e\u5305\u542b\u591a\u4e2a\u9879\u76ee\u7684\u89e3\u51b3\u65b9\u6848\uff0c\u9010\u4e2a\u624b\u52a8\u66f4\u65b0\u6bcf\u4e2a\u9879\u76ee\u7684 .csproj \u6587\u4ef6\u5de5\u4f5c\u91cf\u8f83\u5927\u3002\u4e0d\u8fc7\uff0c\u53ef\u4ee5\u901a\u8fc7\u7f16\u5199\u811a\u672c\u6765\u6279\u91cf\u66f4\u65b0\u8fd9\u4e9b\u6587\u4ef6\uff0c\u4ece\u800c\u51cf\u5c11\u624b\u52a8\u64cd\u4f5c\u7684\u5de5\u4f5c\u91cf\u3002\u4ee5\u4e0b\u662f\u51e0\u79cd\u89e3\u51b3\u65b9\u6848\uff0c\u53ef\u4ee5\u5e2e\u52a9\u4f60\u7b80\u5316\u8fd9\u4e2a\u8fc7\u7a0b\uff1a\u201d\n</code></pre>\n<p>-----gpt \u7684\u56de\u7b54\u4e0d\u6562\u5168\u4fe1\u3002\u4ee5\u4e0a\u5347\u7ea7\u8fc7\u7a0b\u5b58\u5728\u5f88\u591a\u7591\u95ee\u548c\u4e0d\u786e\u5b9a\u6027\u3002\u8bf7\u95ee\u5404\u4f4d\u8001\u5e08\u662f\u5426\u6709\u5177\u4f53\u7684\u6307\u5bfc\u6216\u8005\u66f4\u7b80\u5355\u5347\u7ea7\u65b9\u6cd5\u3002\u6216\u8005\u6709\u76f8\u5173\u8be6\u7ec6\u5347\u7ea7\u6b65\u9aa4\u7684\u89c6\u9891\u5206\u4eab\u4e48\uff1f\u5982\u679c\u6211\u5c06\u5f53\u524d\u7684 7.0 \u5f7b\u5e95\u5378\u8f7d\uff0c\u91cd\u65b0\u5b89\u88c5 8.0 \u662f\u5426\u4f1a\u5bfc\u81f4\u5f53\u524d build \u7684\u9879\u76ee\u5168\u90fd\u4e0d\u53ef\u7528\uff0c\u9700\u8981\u91cd\u65b0 build \u3002\u6216\u8005\u6211\u8fd8\u662f\u8981\u624b\u52a8\u9010\u4e2a\u66f4\u65b0 vscode \u4e2d\u7684 solution \u548c project \u6587\u4ef6\uff1f</p>\n<p><a href=\"https://learn.microsoft.com/zh-cn/aspnet/core/migration/70-80?view=aspnetcore-8.0&amp;tabs=visual-studio-code#tabpanel_1_visual-studio-code\" rel=\"nofollow\">https://learn.microsoft.com/zh-cn/aspnet/core/migration/70-80?view=aspnetcore-8.0&amp;tabs=visual-studio-code#tabpanel_1_visual-studio-code</a></p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/maymay5", 
        "name": "maymay5", 
        "avatar": "https://cdn.v2ex.com/avatar/73b4/34c3/651503_large.png?m=1757313575"
      }, 
      "url": "https://www.v2ex.com/t/1047183", 
      "title": "\u6211\u60f3\u91cd\u6784\u6211\u8fd9\u4e2a\u9879\u76ee\u7684\u524d\u7aef\uff0c\u6709\u4ec0\u4e48\u597d\u7684\u5efa\u8bae\uff1f", 
      "id": "https://www.v2ex.com/t/1047183", 
      "date_published": "2024-06-05T19:02:43+00:00", 
      "content_html": "<h1>\u9879\u76ee\u5730\u5740\uff1a <a href=\"https://github.com/MayDay-wpf/AIBotPublic\" rel=\"nofollow\">https://github.com/MayDay-wpf/AIBotPublic</a></h1>\n<h2>\u5f53\u524d\u7528\u7684\u6280\u672f\u6808</h2>\n<ul>\n<li>.net6</li>\n<li>sqlserver</li>\n<li>bootstrap4</li>\n</ul>\n<h2>\u6574\u7406\u4e86\u6211\u7684\u4ee3\u7801\u540e\u53d1\u73b0\uff0c\u6211\u867d\u7136\u7528\u4e86 MVC \u4f46\u662f view \u8fd9\u4e00\u5c42\u6211\u5b8c\u5168\u6ca1\u6709\u4f7f\u7528 razor \uff0c\u800c\u662f\u7528 jquery \u7eaf\u624b\u6413 dom \u5b57\u7b26\u4e32\uff0c\u8fd9\u4e5f\u8bb8\u5bf9\u4e8e\u91cd\u6784\u524d\u7aef\u4f1a\u6709\u4e00\u5b9a\u5e2e\u52a9</h2>\n<h2>\u4f46\u662f\u73b0\u5728\u6709\u70b9\u9009\u62e9\u56f0\u96be\uff0c\u524d\u7aef\u6846\u67b6\u592a\u591a\u4e86\uff0c\u6211\u65e2\u60f3\u8f7b\u91cf\uff0c\u53c8\u60f3\u7ec4\u4ef6\u4e30\u5bcc\uff0c\u8fd8\u60f3\u62d3\u5c55\u80fd\u529b\u5f3a\uff0c\u5404\u4f4d\u5927\u4f6c\u4eec\u6709\u4ec0\u4e48\u5efa\u8bae\uff1f</h2>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/CatCode", 
        "name": "CatCode", 
        "avatar": "https://cdn.v2ex.com/gravatar/7dfa8c7d43ca8f5bb37248a2009fa040?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1043993", 
      "date_modified": "2024-05-26T01:11:14+00:00", 
      "content_html": "\u505a\u4e00\u4e2a\u7c7b\u4f3c\u4e8e\u5c0f\u5de5\u5177\u96c6\u5408\u7684\u9879\u76ee\uff0c\u684c\u9762\u5e94\u7528\uff0c\u8bed\u8a00\u4e0d\u9650\uff0c\u8981\u6c42\u9002\u914d Win10 21H1 \u5230\u76ee\u524d\u6700\u65b0 Win11 \u7248\u672c\u3002<br />\u53ea\u8003\u8651 Windows \u5e73\u53f0\uff0c\u6709 Windows API \u8c03\u7528\u7684\u9700\u6c42\u3002<br />\u770b\u4e86\u4e00\u4e0b UI \u4e0a\u8981\u6c42\u663e\u793a/\u4ea4\u4e92\u7684\u5185\u5bb9\uff0c\u611f\u89c9 Win32 \u7a97\u4f53\u90a3\u4e00\u5957\u5c31\u5b8c\u5168\u591f\u7528\u4e86\u3002\u8981\u6c42\u8981\u5bf9 Hi-DPI \u652f\u6301\u3002<br />\u4e8e\u662f\u5b9a\u4e0b\u4e86\u7528 C# (.Net 8 LTS)\u505a\u3002<br />\u76ee\u524d\u5728\u9009 Windows \u7a97\u4f53\u5e94\u7528 \u8fd8\u662f WPF \u5e94\u7528 \u4e0a\u72af\u4e86\u96be\u3002\u5404\u4f4d V \u53cb\u6709\u4ec0\u4e48\u9ad8\u89c1\uff1f", 
      "date_published": "2024-05-26T01:09:41+00:00", 
      "title": "\u63a5\u4e86\u4e2a\u5c0f\u6d3b\uff0c\u9009 Windows \u7a97\u4f53\u5e94\u7528\u8fd8\u662f WPF \u5e94\u7528\uff1f", 
      "id": "https://www.v2ex.com/t/1043993"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/drymonfidelia", 
        "name": "drymonfidelia", 
        "avatar": "https://cdn.v2ex.com/gravatar/017bcef6e642dbf067e17838a9cd447a?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1042728", 
      "title": "AlipaySDKNet.OpenAPI \u8fd9\u4e2a\u5305\u6ca1\u591a\u5c11\u4ee3\u7801\uff0c\u4e3a\u4ec0\u4e48\u5927\u5c0f\u662f 14.1MB\uff1f\u91cc\u9762\u585e\u4e86\u4ec0\u4e48\uff1f", 
      "id": "https://www.v2ex.com/t/1042728", 
      "date_published": "2024-05-21T10:48:21+00:00", 
      "content_html": ""
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/drymonfidelia", 
        "name": "drymonfidelia", 
        "avatar": "https://cdn.v2ex.com/gravatar/017bcef6e642dbf067e17838a9cd447a?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1041031", 
      "title": "EF Core \u4e0d\u5f15\u5165\u9501\uff0c\u9ad8\u5e76\u53d1\u573a\u666f ExecuteSqlRawAsync(\"UPDATE Users SET Balance = Balance + {0} WHERE UserId = {1}\");\u540e\u5982\u4f55\u83b7\u53d6 Updated \u540e\u7684\u503c\uff1f", 
      "id": "https://www.v2ex.com/t/1041031", 
      "date_published": "2024-05-15T08:08:15+00:00", 
      "content_html": "\u7528\u4e8e\u4f59\u989d\u53d8\u52a8\u8bb0\u5f55\u3002\u518d\u67e5\u4e00\u904d\u80af\u5b9a\u4e0d\u884c\uff0c\u6781\u7aef\u60c5\u51b5\u4e0b\u4e00\u4e2a\u7528\u6237\u4f1a\u540c\u65f6\u53d1 10000 \u4e2a\u4e0b\u5355\u8bf7\u6c42\uff08\u5ba2\u6237\u7aef\u968f\u786c\u4ef6\u4ea4\u4ed8\uff0c\u6ca1\u6709\u5347\u7ea7\u529f\u80fd\uff0c\u65e0\u6cd5\u66f4\u65b0\uff09\uff0c\u8fd9\u6837\u4e0d\u52a0\u9501\u4f59\u989d\u53d8\u52a8\u8bb0\u5f55\u5c31\u4e0d\u51c6\u4e86\u3002\u52a0\u9501\u7684\u8bdd\u6027\u80fd\u592a\u5dee\u4e86\u3002"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/drymonfidelia", 
        "name": "drymonfidelia", 
        "avatar": "https://cdn.v2ex.com/gravatar/017bcef6e642dbf067e17838a9cd447a?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1037900", 
      "date_modified": "2024-05-05T19:26:26+00:00", 
      "content_html": "\u63a5\u624b\u522b\u4eba\u7684\u9879\u76ee\uff0c\u4ee3\u7801\u4e0d\u719f\u6089\uff0cdotnet-trace \u770b\u4e86\u5f88\u4e45\u4e5f\u6ca1\u627e\u51fa\u95ee\u9898<br /><br />dotnet-dump \u51fa\u6765\u7684\u6570\u636e\u4e0d\u4f1a\u770b\uff0c\u7ffb\u6587\u6863\u5b66\u4e86\u5f88\u4e45\u64cd\u4f5c minidump \u7684\u547d\u4ee4\uff0c\u53d1\u73b0\u7528 dumpheap -stat -min 850000 \u8fd9\u6761\u547d\u4ee4\u53ef\u4ee5\u627e\u51fa\u4e00\u4e2a  StackExchange.Redis.RawResult[] \u7684 Count \u548c TotalSize \u5f88\u5927\uff0c\u4e0d\u77e5\u9053\u662f\u5426\u6709\u5173\u7cfb\u3002\u7531\u4e8e\u5185\u5b58 dump \u91cc\u9762\u6709\u5f88\u591a\u5bc6\u94a5\u4e4b\u7c7b\u654f\u611f\u4fe1\u606f\uff0c\u8131\u654f\u51e0\u4e4e\u65e0\u6cd5\u5b8c\u6210\uff0c\u4e0d\u7136\u5c31 gzip \u538b\u7f29\u4e00\u4e0b\u653e\u51fa\u6765\u6c42\u52a9\u4e86<br /><br />\u9879\u76ee\u91cc\u6709\u975e\u5e38\u591a Subscribe \u4e0d\u540c Redis \u9891\u9053\uff08\u52a8\u6001\u751f\u6210\u7684\u540d\u79f0\uff09\u7684\u64cd\u4f5c\uff0c\u4ece\u4e0d Unsubscribe \uff0c\u4e0d\u77e5\u9053\u662f\u5426\u6709\u5173\u3002", 
      "date_published": "2024-05-05T19:18:30+00:00", 
      "title": "ASP .NET Core 5 \u5185\u5b58\u5360\u7528\u7ebf\u6027\u589e\u52a0\uff0c 1 \u5c0f\u65f6\u5185 100%\u628a 128G \u5185\u5b58\u7528\u5b8c\uff0c\u5982\u679c\u8fd0\u884c dotnet-gcdump \u5219\u80fd\u7acb\u5373\u6062\u590d\u6b63\u5e38\u6c34\u5e73\uff0c\u67e5\u4e86\u5f88\u591a\u6587\u6863 gcdump \u90fd\u662f\u4e0d\u4f1a\u53bb\u89e6\u53d1 GC \u7684\uff0c\u4f46\u591a\u6b21\u5c1d\u8bd5\u90fd\u6210\u529f\uff0c\u6c42\u6392\u67e5\u601d\u8def", 
      "id": "https://www.v2ex.com/t/1037900"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/drymonfidelia", 
        "name": "drymonfidelia", 
        "avatar": "https://cdn.v2ex.com/gravatar/017bcef6e642dbf067e17838a9cd447a?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1037892", 
      "title": "\u4e3a\u4ec0\u4e48\u5f88\u591a\u6587\u7ae0/\u5de5\u5177\u90fd\u662f\u9488\u5bf9.NET Core >3.1 \u800c\u4e0d\u662f 3.0 \u7684\uff1f\u8fd9\u4e2a\u4e2a\u5c0f\u7248\u672c\u6539\u52a8\u975e\u5e38\u5927\u5417\uff1f", 
      "id": "https://www.v2ex.com/t/1037892", 
      "date_published": "2024-05-05T17:06:55+00:00", 
      "content_html": ""
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/drymonfidelia", 
        "name": "drymonfidelia", 
        "avatar": "https://cdn.v2ex.com/gravatar/017bcef6e642dbf067e17838a9cd447a?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1028558", 
      "title": "ASP.NET Core \u5728 Linux \u4e0b\u90e8\u5206\u63a5\u53e3\u8017\u65f6\u957f\u3001\u5e76\u53d1\u6027\u80fd\u5dee\uff0c\u9664\u4e86\u9010\u6b65\u6253\u5370\u65e5\u5fd7\uff0c\u8fd8\u6709\u4ec0\u4e48\u65b9\u4fbf\u3001\u76f4\u89c2\u7684\u529e\u6cd5\u67e5\u51fa\u662f\u54ea\u4e00\u6b65\u8017\u65f6\u957f\u5417\uff1f", 
      "id": "https://www.v2ex.com/t/1028558", 
      "date_published": "2024-03-31T09:09:47+00:00", 
      "content_html": "\u90fd\u662f ASP .NET Core 6.0<br />\u7cfb\u7edf\u5927\u90e8\u5206\u662f Ubuntu 22.04 \uff0c\u4e5f\u6709 20.04 \u548c 18.04 \u7684\uff0c\u603b\u5171\u5341\u51e0\u53f0\u673a\u5668\uff0c\u7ed9\u4e0d\u540c\u5ba2\u6237\u4f7f\u7528<br />\u5927\u90e8\u5206\u662f\u88f8\u673a\u90e8\u7f72\uff0c\u4e5f\u6709\u90e8\u7f72\u5728 Docker \u91cc\u7684"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/89ao", 
        "name": "89ao", 
        "avatar": "https://cdn.v2ex.com/avatar/6b62/c3df/90033_large.png?m=1733918075"
      }, 
      "url": "https://www.v2ex.com/t/1027291", 
      "title": "\u65f6\u9694\u534a\u5e74\uff0c\u6211\u53c8\u6765\u5410\u69fd nuget \u4e86", 
      "id": "https://www.v2ex.com/t/1027291", 
      "date_published": "2024-03-26T16:07:38+00:00", 
      "content_html": "\uff08\u65e7\u8d34\uff1a <a target=\"_blank\" href=\"https://www.v2ex.com/t/947377\" rel=\"nofollow noopener\">https://www.v2ex.com/t/947377</a> \uff09<br /><br />\u6ca1\u9519\u8fd9\u4e1c\u897f\u771f\u7684\u7528\u5230\u5410\u4e86\uff0c\u6700\u8fd1\u611f\u5230\u6700\u50bb\u9e1f\u7684\u4e00\u4e2a\u70b9\u5c31\u662f\uff1a<br />\u5b83\u63d0\u4f9b\u4e86 Nuget list \u7684\u547d\u4ee4\uff0c\u7528\u4e8e\u5217\u51fa\u4ed3\u5e93\u4e2d\u6240\u6709\u7684\u5305\u5217\u8868\uff1b<br />\u7136\u540e\u65e0\u8bba\u56fd\u5185\u56fd\u5916\uff0c\u5b98\u65b9\u79c1\u670d\uff0c\u5185\u7f51\u5916\u7f51\u7684\u54ea\u4e2a\u4ed3\u5e93\uff0c\u90fd\u65e0\u6cd5\u5728\u51e0\u5341\u5206\u949f\u4e4b\u5185\u7ed3\u675f\uff1b<br />\u90fd\u662f 3 \u79d2\u5237\u4e00\u5c4f 3 \u79d2\u5237\u4e00\u5c4f\u7684\u5f80\u5916\u5410\u7ed3\u679c<br />\u90a3\u6574\u4e2a\u8bf7\u6c42\u8981\u8dd1\u591a\u4e45\uff1f<br />\u8fd9\u4e2a http \u8fde\u63a5\u8981\u4fdd\u6301\u591a\u4e45\uff1f server \u7aef\u7684 timeout \u600e\u4e48\u914d\u7f6e\uff1f<br />\u957f\u65f6\u95f4\u4e0d\u5b8c\u6210\u7684\u8fde\u63a5\u5bf9 server \u7684\u538b\u529b\u8981\u6709\u591a\u5927\uff1f<br /><br />\u8bf7\u95ee\u534a\u5c0f\u65f6\u6267\u884c\u5b8c\u4e00\u4e2a list \u7684\u547d\u4ee4\uff0c\u8fd8\u6267\u884c\u5b83\u6709\u4ec0\u4e48\u610f\u4e49\uff1f<br /><br /><br />\u8fd9\u91cc\u62ff yum list \u6765\u505a\u4e2a\u5bf9\u6bd4\uff0c3s \u6267\u884c\u5b8c\ud83d\ude29\uff0c\u7b80\u5355\u53c8\u8f7b\u677e\u3002<br /><br />\u7aa5\u4e00\u6591\u800c\u77e5\u5168\u8c79\uff0cnuget \u4f60\u4e0d\u7f9e\u6127\u5417\uff1f"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/gopher666", 
        "name": "gopher666", 
        "avatar": "https://cdn.v2ex.com/gravatar/6805d7146bb5146abe7274ab6eaab7be?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1022574", 
      "title": "visual studio code for .NET", 
      "id": "https://www.v2ex.com/t/1022574", 
      "date_published": "2024-03-11T07:16:29+00:00", 
      "content_html": "<p>2023 \u5e74\u6211\u81ea\u5df1\u804c\u4e1a\u751f\u6daf\u4e2d\u6709\u4e2a\u8f83\u5927\u7684\u53d8\u5316\uff0c\u75ab\u60c5\u7ed3\u675f\u4e4b\u540e\uff0c\u6211\u6765\u5230\u4e86\u4e8c\u7ebf\u57ce\u5e02\uff0c<a href=\"http://\u82b1\u4e86\u597d\u4e45\u624d\u627e\u5230\u4e00\u4efd.NET\" rel=\"nofollow\">\u82b1\u4e86\u597d\u4e45\u624d\u627e\u5230\u4e00\u4efd.NET</a> \u7684\u5de5\u4f5c\u3002\n\u5165\u804c\u9762\u8bd5\u7684\u65f6\u5019\uff0c<a href=\"http://\u9762\u8bd5\u5b98\u8ddf\u6211\u63d0\u5230\u4e86\u516c\u53f8\u5185.NET\" rel=\"nofollow\">\u9762\u8bd5\u5b98\u8ddf\u6211\u63d0\u5230\u4e86\u516c\u53f8\u5185.NET</a> \u540e\u7aef\u7684\u5f00\u53d1\u5de5\u5177\u8981\u8f6c\u5230 vscode \u3002</p>\n<h2>\u5f00\u59cb\u5c1d\u8bd5</h2>\n<p>\u5f00\u59cb\u4f7f\u7528\u7684\u65f6\u5019\u7528 c# for vscode,VSCode-solution-explorer,nuget package manager,C# XML Documentation Comments \u7b49\u63d2\u4ef6\u914d\u5408\u8d77\u6765\u5f00\u53d1 dotnet6.\n\u540e\u6765\u5fae\u8f6f\u63a8\u51fa\u7684 c# for vscode + c# dev kit \u4e0d\u65ad\u7684\u5347\u7ea7\uff0c\u57fa\u672c\u4e0a\u53d6\u4ee3\u4e86\u4e4b\u524d\u7528\u7684\u90a3\u4e9b\u63d2\u4ef6\u3002\nvisual studio for MAC \u4e0a\uff0c\u5fae\u8f6f\u540e\u671f\u4e5f\u4e0d\u5728\u7ee7\u7eed\u66f4\u65b0\uff0c<a href=\"http://\u8fd9\u5c31\u610f\u5473\u7740\u5176\u4ed6\u5e73\u53f0\u4e0a.NET\" rel=\"nofollow\">\u8fd9\u5c31\u610f\u5473\u7740\u5176\u4ed6\u5e73\u53f0\u4e0a.NET</a> \u5f00\u53d1\u5de5\u5177\u7684\u4e3b\u529b\u5c31\u4f1a\u662f vscode \u3002\n\u5f00\u59cb\u4f7f\u7528\u7684\u65f6\u5019\u5148\u5c1d\u8bd5\u4e86\u76f4\u63a5\u4f7f\u7528 dotnet cli \u7684\u4e00\u4e9b\u57fa\u672c\u547d\u4ee4\uff0c\u6765\u7ba1\u7406\u9879\u76ee\u548c\u89e3\u51b3\u65b9\u6848\u3002</p>\n<pre><code class=\"language-shell\">dotnet new sln -o solution // \u65b0\u5efa\u89e3\u51b3\u65b9\u6848\ndotnet new list //\u5217\u51fa templates\ndotnet new console -n conApp // \u65b0\u5efa\u4e00\u4e2a\u63a7\u5236\u53f0\u7a0b\u5e8f\ndotnet new classlib -n Lib -f net6.0  // \u65b0\u5efa\u7c7b\u5e93\ndotnet sln add .\\Lib\\Lib.csproj \u52a0\u5165\u5230\u89e3\u51b3\u65b9\u6848\n</code></pre>\n<p>dotnet nuget</p>\n<pre><code class=\"language-shell\">dotnet nuget list source \ndotnet nuget add source \u6dfb\u52a0\u6e90\ndotnet nuget remove source \ndotnet disable source \ndotnet enable source\n</code></pre>\n<p>\u5f53\u7136\u6211\u4eec\u7ecf\u5e38\u7528\u8fc7\u547d\u4ee4\u6765\u7ba1\u7406\u9879\u76ee\u786e\u5b9e\u6709\u5199\u9ebb\u70e6\u3002\nc# kit dev \u7ed9 dotnet \u5f00\u53d1\u8005\u63d0\u4f9b\u4e86 solution explorer \u3002</p>\n<h2>Change Cursor Style and Animation in VS Code</h2>\n<pre><code class=\"language-json\">\"editor.cursorBlinking\": \"smooth\"\n</code></pre>\n<h2>Unit test</h2>\n<p>\u76ee\u524d c# dev kit \u8fd8\u6709\u4e00\u4e9b\u5b58\u5728\u7684\u95ee\u9898\u5f85\u4fee\u590d\u3002\n\u6bd4\u5982\u6211\u5e38\u7528\u5230 xunit \u6846\u67b6\u7528\u6765\u8f93\u51fa\u65e5\u5fd7\u7684 output \uff0c\u8fd8\u65e0\u6cd5\u8f93\u51fa\u5230\u63a7\u5236\u53f0\uff0c\u65e0\u6cd5\u770b\u5230\u81ea\u5df1\u6253\u5370\u7684\u4fe1\u606f\u3002\n\u76f8\u5173 issue. <a href=\"https://github.com/microsoft/vscode-dotnettools/issues/159\" rel=\"nofollow\">No output recorded after unit testing using xUnit</a>\n\u4e3a\u4e86\u5bf9\u4ee3\u7801\u8fdb\u884c\u6d4b\u8bd5\u8986\u76d6\uff0c\u9700\u8981\u5b89\u88c5\u51e0\u4e2a\u63d2\u4ef6\n\u9996\u5148\u4ee3\u7801\u4e2d\u9700\u8981\u5f15\u5165 Coverlet  </p>\n<pre><code class=\"language-shell\">dotnet add package coverlet.collector\n</code></pre>\n<p>xunit \u9879\u76ee\u4e2d\u4f7f\u7528 </p>\n<pre><code class=\"language-shell\"> dotnet test --collect:\"XPlat Code Coverage\" \n</code></pre>\n<p>\u8fd9\u4e2a\u547d\u4ee4\u53ef\u4ee5\u914d\u7f6e\u8fc7\u6ee4\u6761\u4ef6\u6392\u9664\u4e00\u4e9b\u4e0d\u60f3\u88ab\u7edf\u8ba1\u7684\u4ee3\u7801\u53c2\u8003\u6587\u6863\n\u9700\u8981\u6dfb\u52a0\u4e00\u4e2a\u914d\u7f6e\u6587\u4ef6 coverlet.runsettings</p>\n<pre><code class=\"language-xml\">&lt;?xml version=\"1.0\" encoding=\"utf-8\" ?&gt;\n&lt;RunSettings&gt;\n  &lt;DataCollectionRunSettings&gt;\n    &lt;DataCollectors&gt;\n      &lt;DataCollector friendlyName=\"XPlat code coverage\"&gt;\n        &lt;Configuration&gt;\n          &lt;Format&gt;json,cobertura,lcov,teamcity,opencover&lt;/Format&gt;          \n          &lt;Exclude&gt;[coverlet.*.tests?]*,[*]Coverlet.Core*&lt;/Exclude&gt; &lt;!-- [Assembly-Filter]Type-Filter --&gt;\n          &lt;Include&gt;[coverlet.*]*,[*]Coverlet.Core*&lt;/Include&gt; &lt;!-- [Assembly-Filter]Type-Filter --&gt;\n          &lt;ExcludeByAttribute&gt;Obsolete,GeneratedCodeAttribute,CompilerGeneratedAttribute&lt;/ExcludeByAttribute&gt;\n          &lt;ExcludeByFile&gt;**/dir1/class1.cs,**/dir2/*.cs,**/dir3/**/*.cs,&lt;/ExcludeByFile&gt; &lt;!-- Globbing filter --&gt;\n          &lt;IncludeDirectory&gt;../dir1/,../dir2/,&lt;/IncludeDirectory&gt;\n          &lt;SingleHit&gt;false&lt;/SingleHit&gt;\n          &lt;UseSourceLink&gt;true&lt;/UseSourceLink&gt;\n          &lt;IncludeTestAssembly&gt;true&lt;/IncludeTestAssembly&gt;\n          &lt;SkipAutoProps&gt;true&lt;/SkipAutoProps&gt;\n          &lt;DeterministicReport&gt;false&lt;/DeterministicReport&gt;\n          &lt;ExcludeAssembliesWithoutSources&gt;MissingAll,MissingAny,None&lt;/ExcludeAssembliesWithoutSources&gt;\n        &lt;/Configuration&gt;\n      &lt;/DataCollector&gt;\n    &lt;/DataCollectors&gt;\n  &lt;/DataCollectionRunSettings&gt;\n&lt;/RunSettings&gt;\n</code></pre>\n<p><a href=\"https://github.com/coverlet-coverage/coverlet/blob/master/Documentation/VSTestIntegration.md\" rel=\"nofollow\">https://github.com/coverlet-coverage/coverlet/blob/master/Documentation/VSTestIntegration.md</a>\n\u4e3a\u4e86\u5728 vscode \u4e2d\u53ef\u4ee5\u5c55\u793a\u5bf9\u5e94\u6587\u4ef6\u7684\u4ee3\u7801\u8986\u76d6\u7387\uff0c\u53ef\u4ee5\u4f7f\u7528\u8fd9\u4e2a\u63d2\u4ef6\nCoverage Gutters  <a href=\"https://marketplace.visualstudio.com/items?itemName=ryanluker.vscode-coverage-gutters\" rel=\"nofollow\">https://marketplace.visualstudio.com/items?itemName=ryanluker.vscode-coverage-gutters</a>\n\u4e3a\u4e86\u751f\u6210\u5bf9\u90a3\u4e2a\u7684\u4ee3\u7801\u6d4b\u8bd5\u62a5\u544a\uff0c\u53ef\u4ee5\u5b89\u88c5 <a href=\"https://github.com/danielpalme/ReportGenerator\" rel=\"nofollow\">RepotGenerator</a></p>\n<h2>Run multiple dotnet project at once</h2>\n<p>** tasks.json **</p>\n<pre><code class=\"language-json\">[\n    {\n            \"command\": \"dotnet\",\n            \"args\": [\n                \"build\",\n                \"${workspaceFolder}\\\\xxx.csproj\",\n                \"/property:GenerateFullPaths=true\",\n                \"/consoleloggerparameters:NoSummary\"\n            ],\n            \"problemMatcher\": \"$msCompile\",\n            \"type\": \"process\",\n            \"label\": \"dotnet: build APIGateway4\"\n    }\n]\n</code></pre>\n<p>** launch.json ** </p>\n<pre><code class=\"language-json\">[{\n            \"name\": \".NET8 Launch (APIGateway4)\",\n            \"type\": \"coreclr\",\n            \"request\": \"launch\",\n            \"preLaunchTask\": \"dotnet: build APIGateway4\",\n            \"program\": \"${workspaceFolder}\\\\APIGateway4.exe\",\n            \"args\": [],\n            \"cwd\": \"${workspaceFolder}\\\\src\\\\APIGateway\\\\APIGateway4\",\n            \"stopAtEntry\": false,\n            \"serverReadyAction\": {\n                \"action\": \"openExternally\",\n                \"pattern\": \"\\\\bNow listening on:\\\\s+( https?://\\\\S+)\"\n            },\n            \"env\": {\n                \"ASPNETCORE_ENVIRONMENT\": \"Development\"\n            }\n }],\n \"compounds\": [\n        {\n            \"name\": \".NET8 Launch (ALL API Gateway)\",\n            \"configurations\": [\n                \".NET8 Launch (APIGateway)\",\n                \".NET8 Launch (APIGateway2)\"\n            ],\n            \"stopAll\": false\n        }\n    ]\n</code></pre>\n<h2>Add bracket pair colorization to your settings.json</h2>\n<pre><code class=\"language-json\"> \"editor.guides.bracketPairs\": \"active\",\n \"editor.bracketPairColorization.enabled\": true,\n</code></pre>\n<h2>\u96c6\u6210 cmder</h2>\n<p>\u6309  Ctrl + , \u6253\u5f00 VS Code setting \uff0c\u641c\u7d22 terminal profiles windows,\u6216\u8005 ctrl + shift +p \u6253\u5f00 vs code Command Pallet \u641c\u7d22\n\u7f16\u8f91 settings.json</p>\n<pre><code class=\"language-json\">   \"terminal.integrated.defaultProfile.windows\": \"Cmder\",\n\n    \"terminal.integrated.profiles.windows\": {\n        \"Cmder\": {\n            \"name\": \"Cmder\",\n            \"path\": [\n                \"${env:windir}\\\\Sysnative\\\\cmd.exe\",\n                \"${env:windir}\\\\System32\\\\cmd.exe\"\n            ],\n            \"args\": [\"/k\", \"${env:cmder_root}\\\\vendor\\\\bin\\\\vscode_init.cmd\"],\n            \"icon\": \"terminal-cmd\",\n            \"color\": \"terminal.ansiGreen\"\n        },\n    },\n</code></pre>\n<p>\u9700\u8981\u63d0\u524d\u914d\u7f6e\u4e00\u4e0b\u73af\u5883\u53d8\u91cf\nCMDER_ROOT \u6307\u5411 Cmder \u7684\u5b89\u88c5\u76ee\u5f55</p>\n<h2>Hot keys</h2>\n<ul>\n<li>ctrl + ,   \uff1a \u641c\u7d22\u6587\u4ef6\u6216\u51fd\u6570\u6216\u53d8\u91cf \u6216\u8005  \u7f16\u8f91-&gt;\u5b9a\u4f4d\u5230     \u6ce8\u610f\uff1a, \u5bf9\u5e94 &lt; \u90a3\u4e2a\u6309\u952e\u4e0a\u7684</li>\n<li>c \uff0cc \u9017\u53f7\uff0c\u800c\u4e0d\u662f\"\u90a3\u4e2a\u952e\u7684\u9017\u53f7</li>\n<li>cctrl + g  : \u5b9a\u4f4d\u5230\u884c  \u6216\u8005  \u7f16\u8f91-&gt;\u8f6c\u5230</li>\n<li>cctrl + - : \u8fd4\u56de\u5230\u4e0a\u4e00\u6b21\u5149\u6807\u6d4f\u89c8   \u6ce8\u610f\uff1a- \u53f7\u4e0d\u662f\u5c0f\u952e(\u6570\u5b57)\u76d8\u4e0a\u7684\u90a3\u4e2a\u952e</li>\n<li>cctrl + + : \u8fd4\u56de\u5230\u540e\u4e00\u6b21\u5149\u6807\u6d4f\u89c8   \u6ce8\u610f\uff1a+ \u53f7\u4e0d\u662f\u5c0f\u952e(\u6570\u5b57)\u76d8\u4e0a\u7684\u90a3\u4e2a\u952e</li>\n<li>cctrl + c :\u590d\u5236\u5149\u6807\u6240\u5728\u884c    \u6ce8\u610f\uff1a\u53ea\u9700\u8981\u5149\u6807\u5728\u8fd9\u4e00\u884c\uff0c\u4e0d\u9700\u8981\u9009\u4e2d\u6574\u884c</li>\n<li>cctrl + x : \u526a\u5207\u5149\u6807\u6240\u5728\u884c  \u6ce8\u610f\uff1a\u53ea\u9700\u5c06\u5149\u6807\u79fb\u81f3\u8be5\u884c\uff0c\u4e0d\u9700\u8981\u9009\u4e2d\u6574\u884c</li>\n<li>cctrl + l(\u6ce8\u610f\u662f L \u952e) : \u5220\u9664\u5149\u6807\u6240\u5728\u884c  \u6ce8\u610f\uff1a\u53ea\u9700\u5c06\u5149\u6807\u79fb\u81f3\u8be5\u884c\uff0c\u4e0d\u9700\u8981\u9009\u4e2d\u6574\u884c</li>\n<li>cctrl + k + c :\u6ce8\u91ca\u6240\u9009\u4ee3\u7801\u6216\u5149\u6807\u6240\u5728\u884c   \u6ce8\u610f\uff1a\u5148\u6309 k,\u518d\u6309 c     \u6216\u8005 ctrl+k,ctrl+c</li>\n<li>cctrl + k + u:\u53d6\u6d88\u6ce8\u91ca\u6240\u9009\u4ee3\u7801\u6216\u5149\u6807\u6240\u5728\u884c   \u6ce8\u610f\uff1a\u5148\u6309 k,\u518d\u6309 u  \u6216\u8005 ctrl+k,ctrl+u</li>\n<li>cctrl + f\uff1a\u5728\u672c\u6587\u4ef6\u4e2d\u67e5\u627e</li>\n<li>cctrl + h :\u5728\u672c\u6587\u4ef6\u4e2d\u66ff\u6362</li>\n<li>cf2\uff1a \u8f6c\u5230\u5b9a\u4e49  , \u5982\u60f3\u67e5\u627e Connect \u51fd\u6570\u5728\u54ea\u91cc\u5b9a\u4e49\uff0c\u53ef\u4ee5\u53cc\u51fb\u9009\u4e2d\uff0c\u7136\u540e f12</li>\n<li>cshift + f12 : \u67e5\u627e\u6240\u6709\u5f15\u7528 \u3002\u5982\u60f3\u67e5\u627e Connect \u51fd\u6570\u5728\u54ea\u4e9b\u5730\u65b9\u8c03\u7528\u4e86\uff0c\u53ef\u4ee5\u9009\u4e2d   Connect \uff0c\u7136\u540e shift+f12</li>\n<li>cf5 : \u5f00\u59cb\u8fd0\u884c \u6216\u8005 \u5f00\u59cb\u8c03\u8bd5</li>\n</ul>\n<p>Quick fix \u5931\u6548\u4e86</p>\n<p>quick fix \u6309 ctrl + . \u5931\u6548\u4e86\uff0c\u53ef\u4ee5\u5c1d\u8bd5\u4fee\u6539\u6210\u5176\u4ed6\u7684\u5feb\u6377\u952e\nshift + ctrl + p  \u8f93\u5165 Open Keyboard Shortcuts\nsearch quick fix\n\u6bd4\u5982\u4fee\u6539\u6210 ctrl + shift + .</p>\n<h2>\u4f53\u4f1a</h2>\n<p>\u603b\u4f53\u611f\u89c9 vscode \uff0c\u5728\u5fae\u8f6f\u66f4\u65b0\u4e86 c# + c# dev kit \u4e4b\u540e\uff0c\u5199 dotnet \u7684\u4ee3\u7801\u4f53\u9a8c\u8d8a\u6765\u8d8a\u597d\uff0c\u7ed9\u6211\u7684\u611f\u89c9\u662f\u8f7b\u91cf\u548c\u53ef\u5b9a\u5236\u5316\uff0c\u5e0c\u671b vscode for dotnet \u8d8a\u6765\u8d8a\u597d\u3002\n** \u90a3\u4e48\u4f60\u6709\u6ca1\u6709\u5728\u4f7f\u7528 vscode \u6765\u5f00\u53d1 dotnet \u5462\uff1f \u53ef\u4ee5\u4e0e\u6211\u4e00\u8d77\u8ba8\u8bba\u8fd9\u4e2a\u8bdd\u9898 **</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/gopher666", 
        "name": "gopher666", 
        "avatar": "https://cdn.v2ex.com/gravatar/6805d7146bb5146abe7274ab6eaab7be?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1021513", 
      "title": ".NET \u7a0b\u5e8f\u5458\u7684\u8ff7\u832b", 
      "id": "https://www.v2ex.com/t/1021513", 
      "date_published": "2024-03-07T08:14:15+00:00", 
      "content_html": "<p>\u804c\u4f4d\u5c11\u7684\u53ef\u601c\uff0c\u4ece\u4e00\u7ebf\u5230\u4e8c\u7ebf\u6298\u817e\u4e86 3 \u4e2a\u57ce\u5e02\uff0c\u4e00\u76f4\u5e72 B/S .NET \u670d\u52a1\u7aef\uff0c\u8d8a\u5e72\u8d8a\u8ff7\u832b\uff0c\u85aa\u8d44\u8fd8\u4e0d\u9ad8\u3002\n\u9a6c\u4e0a 35 \u4e86\uff0c\u600e\u4e48\u529e\u5462\uff1f\u6709\u6ca1\u6709\u5176\u4ed6\u7684\u53d1\u5c55\u8def\u7ebf\u3002</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/zgsi", 
        "name": "zgsi", 
        "avatar": "https://cdn.v2ex.com/gravatar/d30176971faf9b0db2b0da1c27d30c81?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1019001", 
      "title": "vs2022 win10 \u5173\u673a\u540e\u518d\u5f00\u673a\u5982\u4f55\u6062\u590d", 
      "id": "https://www.v2ex.com/t/1019001", 
      "date_published": "2024-02-28T01:37:41+00:00", 
      "content_html": "vs2012 \u91cd\u542f\u540e\u90fd\u4f1a\u6062\u590d\u5173\u673a\u4e4b\u524d\u7684\u72b6\u6001\uff0c\u4f46\u662f vs2022 \u5c31\u4e0d\u884c\u3002<br />\u9700\u8981\u914d\u7f6e\u4ec0\u4e48\u5417\uff1f\u8fd8\u662f\u5c31\u8fd9\u6837"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/drymonfidelia", 
        "name": "drymonfidelia", 
        "avatar": "https://cdn.v2ex.com/gravatar/017bcef6e642dbf067e17838a9cd447a?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1015029", 
      "title": "Avalonia \u73b0\u5728\u8fd8\u662f\u7075\u8f66\u5417\uff1f\u8fde\u5b98\u7f51\u6587\u6863\u90fd\u80fd\u51fa\u8fd9\u4e48\u591a bug", 
      "id": "https://www.v2ex.com/t/1015029", 
      "date_published": "2024-02-08T05:37:15+00:00", 
      "content_html": "<p>\u4e00\u5e74\u524d\u521a\u5b66\u4e60\u8fd9\u4e2a\u6846\u67b6\u7684\u65f6\u5019\u5b98\u7f51\u6587\u6863 Music Store App \u8fd9\u7ae0\u8282\u4e00\u534a\u7684\u56fe\u7247 404 \u9519\u8bef\uff0c\u6628\u5929\u53bb\u770b\u5012\u662f\u5df2\u7ecf\u89e3\u51b3\u4e86\uff0c\u53c8\u5f04\u51fa\u4e86\u65b0\u7684 bug \uff0c\u6587\u6863\u7684\u4fa7\u8fb9\u680f\u6298\u53e0\u540e\u65e0\u6cd5\u5c55\u5f00\n\u8fde\u5b98\u7f51\u6587\u6863\u90fd\u80fd\u51fa\u8fd9\u4e48\u591a bug \uff0c\u6846\u67b6\u7684\u7a33\u5b9a\u6027\u4e0d\u6562\u60f3</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/drymonfidelia", 
        "name": "drymonfidelia", 
        "avatar": "https://cdn.v2ex.com/gravatar/017bcef6e642dbf067e17838a9cd447a?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1012074", 
      "title": "MAUI \u5728 macOS \u4e0a\u6709\u529e\u6cd5\u5b9e\u73b0\u5173\u95ed\u7a97\u53e3\u540e\u4e0d\u9000\u51fa\u5417\uff1f", 
      "id": "https://www.v2ex.com/t/1012074", 
      "date_published": "2024-01-27T09:44:34+00:00", 
      "content_html": ""
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/drymonfidelia", 
        "name": "drymonfidelia", 
        "avatar": "https://cdn.v2ex.com/gravatar/017bcef6e642dbf067e17838a9cd447a?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1010109", 
      "date_modified": "2024-01-19T11:41:36+00:00", 
      "content_html": "", 
      "date_published": "2024-01-19T11:41:16+00:00", 
      "title": "ClosedXML \u6709\u529e\u6cd5\u7b80\u5355\u5b9e\u73b0\u628a HTML \u4fdd\u7559\u6240\u6709\u989c\u8272\u548c\u56fe\u7247\u63d2\u5165\u5230\u4e00\u4e2a\u5355\u5143\u683c\u5417? \u6211\u60f3\u5230\u7684\u529e\u6cd5\u662f\u7528 AngleSharp \u89e3\u6790,\u4f46\u6539\u4e86\u597d\u51e0\u4e2a\u7248\u672c\u6548\u679c\u8fd8\u662f\u5f88\u5dee", 
      "id": "https://www.v2ex.com/t/1010109"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/drymonfidelia", 
        "name": "drymonfidelia", 
        "avatar": "https://cdn.v2ex.com/gravatar/017bcef6e642dbf067e17838a9cd447a?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/997407", 
      "date_modified": "2023-12-04T02:50:39+00:00", 
      "content_html": "<p>\u534a\u5e74\u524d\u662f\u6bcf\u6708\u672c\u673a Redis \u8fde\u63a5\u8d85\u65f6\uff08 StackExchange.Redis.RedisTimeoutException: Timeout awaiting response (outbound=0KiB, inbound=0KiB, 6???ms elapsed, timeout is 5000ms)\uff0c\u7a0b\u5e8f\u5927\u91cf\u4f7f\u7528\u4e86 Redis \u7f13\u5b58\u6570\u636e\uff0c\u65e5\u5fd7\u91cc\u6bcf\u9694\u51e0\u5929\u5c31\u4f1a\u51fa\u73b0\u8fd9\u4e2a\u9519\u8bef\uff0c\u56e0\u4e3a\u9519\u8bef\u4f1a\u81ea\u52a8\u91cd\u8bd5\uff0c\u5b9e\u9645\u5e76\u6ca1\u6709\u5f71\u54cd\u5230\u4e1a\u52a1\uff0c\u56e0\u6b64\u4e00\u76f4\u6ca1\u4eba\u7ba1\uff0c\u4e0d\u77e5\u9053\u548c\u6bcf\u6708\u56fa\u5b9a\u670d\u52a1\u6302\u6389\u4e00\u6b21\u662f\u5426\u6709\u5173\uff09\uff0c\u91cd\u542f\u540e\u5c31\u51fa\u73b0\u767b\u5f55\u9a8c\u8bc1\u7801 500 \u9519\u8bef\u7684\u95ee\u9898\uff0c\u770b\u65e5\u5fd7\u627e\u4e0d\u5230 dll \uff0c\u89c1\u56fe\uff1a\n<img alt=\"\" class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://i.ibb.co/z2Fsttx/Untitled.jpg\"/>\n\u6211\u7528 python \u5199\u4e86\u4e00\u4e2a\u6bcf 5 \u79d2\u8bf7\u6c42\u4e00\u6b21\u9a8c\u8bc1\u7801\u63a5\u53e3\uff0c\u8fde\u7eed 2 \u6b21 500 \u9519\u8bef\u5219\u91cd\u542f\u670d\u52a1\uff0c\u7a33\u5b9a 3 \u4e2a\u6708\u540e\u6545\u969c\u5347\u7ea7\u4e3a\u6bcf\u6708\u670d\u52a1\u5668\u5931\u8054\uff0c\u5931\u8054\u671f\u95f4\u65e5\u5fd7\u6ca1\u8bb0\u5f55\u5230\u4efb\u4f55\u9519\u8bef\uff0c\u4f46\u5ba2\u6237\u4ece\u963f\u91cc\u4e91\u5c0f\u7a0b\u5e8f\u770b\u7cfb\u7edf\u76d8 IO \u7206\u8868\uff1a\n<img alt=\"\" class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://i.ibb.co/NSk64Hh/2222.jpg\"/>\nSSH \u4e5f\u8fde\u63a5\u4e0d\u4e0a\u3002\u540c\u4e00\u5957\u7cfb\u7edf\u4ee5\u524d\u90e8\u7f72\u5728 Windows Server \u4e0b\u975e\u5e38\u7a33\u5b9a\uff0c\u4f46\u56e0\u4e3a\u4e00\u4e9b\u975e\u6280\u672f\u539f\u56e0\u73b0\u5728\u5fc5\u987b\u90e8\u7f72\u5728 Linux \u4e0b\u3002</p>\n", 
      "date_published": "2023-12-04T02:47:32+00:00", 
      "title": "\u6c42\u52a9\uff08\u9644\u65e5\u5fd7\uff09ASP.NET Core \u90e8\u7f72\u5728 Ubuntu 22.04 8 \u6838 32G \u963f\u91cc\u4e91\u4e0b\u6bcf\u6708\u56fa\u5b9a\u51fa\u73b0\u4e00\u6b21\u670d\u52a1\u5668\u5931\u8054\u60c5\u51b5\uff0c\u5177\u4f53\u65f6\u95f4\u968f\u673a\uff0c\u5931\u8054\u540e\u7cfb\u7edf\u76d8 IO \u7206\u8868\uff0c\u91cd\u542f\u53ef\u89e3\u51b3\uff0c\u5e94\u8be5\u4ece\u54ea\u91cc\u5f00\u59cb\u6392\u67e5\uff1f\u5b8c\u5168\u6ca1\u601d\u8def\uff0c\u9644\u65e5\u5fd7", 
      "id": "https://www.v2ex.com/t/997407"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/drymonfidelia", 
        "name": "drymonfidelia", 
        "avatar": "https://cdn.v2ex.com/gravatar/017bcef6e642dbf067e17838a9cd447a?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/994142", 
      "date_modified": "2023-11-22T05:05:40+00:00", 
      "content_html": "<p>\u9700\u6c42\u662f\u51e0\u767e\u4e2a\u5ba2\u6237\u7aef\u4e0d\u65ad\u7ed9\u6211\u4eec\u4e0a\u62a5\u4e00\u4e9b\u6570\u636e\uff08\u52a0\u8d77\u6765\u6bcf\u5206\u949f 2000 \u6761\u5de6\u53f3\uff09\u6211\u4eec\u5206\u7c7b\u540e\u4e0a\u62a5\u7ed9\u4e0d\u540c\u4e0a\u6e38\u3002\u4e0a\u6e38\u7684\u63a5\u53e3\u8bbe\u8ba1\u975e\u5e38\u5dee\u52b2\uff08\u6309\u7167\u540c\u4e00\u4efd\u6587\u6863\uff09\uff0c\u4e00\u6b21\u53ea\u80fd\u63a5\u53d7\u4e00\u6761\u6570\u636e\uff0c\u6709\u7684\u4e0a\u6e38\u4e00\u4e2a\u8bf7\u6c42 3 \u5206\u949f\u624d\u54cd\u5e94\u3002<strong>\u4e0a\u6e38\u7684\u7a0b\u5e8f\u4e0d\u662f\u6211\u4eec\u80fd\u63a7\u5236\u7684\uff0c\u6211\u4eec\u4e5f\u6ca1\u6743\u5229\u8981\u6c42\u4ed6\u4eec\u4fee\u6539\u3002</strong></p>\n<p>\u76ee\u524d\u6211\u7684\u8bbe\u8ba1\u662f\u4e00\u4e2a\u72ec\u7acb <a href=\"http://ASP.Net\" rel=\"nofollow\">ASP.Net</a> Core \u7a0b\u5e8f\u63a5\u53d7\u6570\u636e\u5b58\u5165\u6570\u636e\u5e93\uff08\u56e0\u4e3a\u6709\u5728\u7ebf\u7387\u8981\u6c42\uff0c\u5904\u7406\u4efb\u52a1\u7684\u7a0b\u5e8f\u9700\u8981\u7ecf\u5e38\u91cd\u542f\u66f4\u65b0\uff0c\u6709\u7684\u65f6\u5019\u4f1a\u66f4\u65b0\u574f\u6389\uff09\uff0c\u53e6\u4e00\u4e2a\u7a0b\u5e8f\u6bcf 2 \u79d2\u67e5\u8be2\u4e00\u6b21\u6570\u636e\u5e93\u7684\u65b0\u6570\u636e\uff0c\u6309\u9700\u8981\u4e0a\u62a5\u7684\u4e0a\u6e38\u5206\u7c7b\u597d\u8fdb\u5165 5 \u4e2a\u4e0d\u540c\u961f\u5217\uff08\u4e0d\u80fd\u63a5\u53d7\u6570\u636e\u7684\u65f6\u5019\u5c31\u5206\u7c7b\uff0c\u56e0\u4e3a\u5206\u7c7b\u7684\u903b\u8f91\u4e5f\u8981\u7ecf\u5e38\u6539\uff09\uff0c\u53e6\u5916\u542f\u52a8\u7684\u65f6\u5019\u5f00 5 \u4e2a\u7ebf\u7a0b\u5728\u6570\u636e\u5e93\u91cc\u626b\u63cf\u8fd9\u4e9b\u961f\u5217\uff0c\u53d1\u73b0\u65b0\u7684\u4efb\u52a1\u5c31\u5f00\u4e00\u4e2a\u5f02\u6b65 Task \u4e0a\u62a5\u3002\u4e0d\u540c\u4e0a\u6e38\u80fd\u63a5\u53d7\u7684\u5e76\u53d1\u4e0d\u4e00\u6837\uff0cTask \u5916\u9762\u6709\u4e2a <code>semaphoreSlim.WaitAsync();</code>\u9632\u6b62\u628a\u4e0a\u6e38\u670d\u52a1\u5f04\u70b8\u3002\u8fd9\u79cd\u5b9e\u73b0 CPU \u5360\u7528\u7387\u5f88\u9ad8\uff0c4C8G \u963f \u91cc \u4e91\u5360\u7528\u4e00\u76f4\u5728 100%\uff0c\u6709\u6ca1\u6709\u4eba\u77e5\u9053\u6700\u4f73\u5b9e\u73b0\u662f\u4ec0\u4e48\uff1f</p>\n", 
      "date_published": "2023-11-22T04:58:21+00:00", 
      "title": "\u6c42\u52a9 C#\u6709\u529e\u6cd5\u5728\u81ea\u5df1\u7a0b\u5e8f\u5185\u90e8\u5b9e\u73b0\u4e00\u4e2a\u8de8\u7ebf\u7a0b\u7684\u7b80\u6613\u6d88\u606f\u961f\u5217\u5417\uff1f\u73b0\u5728\u8fd9\u79cd\u8f6e\u8be2\u6570\u636e\u5e93\u7684\u5b9e\u73b0 CPU \u5360\u7528\u7387\u5f88\u9ad8\uff0c 4C8G \u963f \u91cc \u4e91\u5360\u7528\u4e00\u76f4\u5728 100%", 
      "id": "https://www.v2ex.com/t/994142"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/uCharles", 
        "name": "uCharles", 
        "avatar": "https://cdn.v2ex.com/avatar/c1fc/5c02/465405_large.png?m=1766416433"
      }, 
      "url": "https://www.v2ex.com/t/993760", 
      "date_modified": "2023-11-22T01:48:25+00:00", 
      "content_html": "<p>\u9700\u6c42\uff1a\u6709\u4e00\u4e2a\u7edf\u4e00\u7684 Web \u7f51\u9875\uff08.net core 7.0 \uff09\u8981\u6c42\u5728\u57df\u5185\u8d26\u6237\u6253\u5f00\u8fd9\u4e2a\u7f51\u9875\u65f6\u81ea\u52a8\u83b7\u53d6\u5230\u5f53\u524d\u7684\u57df\u8d26\u6237\u540d\u3002</p>\n<p>\u5c1d\u8bd5\uff1a\n1 \u3001\u5728\u6dfb\u52a0\u4e86\u4e00\u4e9b\u4ee3\u7801\u540e\uff0c\u6211\u81ea\u5df1\u5728\u672c\u5730\u4e0a\u8fd0\u884c\u53ef\u4ee5\u83b7\u53d6\u5230\uff0c\u4f46\u662f\u53d1\u5e03\u5230 IIS \u4e0a\u65e0\u6cd5\u83b7\u53d6\n2 \u3001\u540e\u6765\u53c8\u6309\u7167\u5fae\u8f6f\u5b98\u65b9\u6587\u6863\u5c1d\u8bd5\u5728 Program.cs \u4e2d\u6dfb\u52a0\u4e00\u4e9b\u4ee3\u7801\u540e\uff0c\u5728\u6253\u5f00\u8fd9\u4e2a\u7edf\u4e00 Web \u7f51\u9875\u7684\u65f6\u5019\u9700\u8981\u4f7f\u7528\u57df\u8d26\u6237\u5bc6\u7801\u767b\u5f55\uff0c\u767b\u9646\u540e\u7684\u786e\u80fd\u83b7\u53d6\u5230\u57df\u8d26\u6237\u540d\u79f0\u3002</p>\n<p>\u6c42\u52a9\uff1a\u73b0\u5728\u5c31\u662f\u60f3\uff0c\u6709\u6ca1\u6709\u4e00\u4e2a\u529e\u6cd5\u53ef\u4ee5\u4e0d\u767b\u5f55\u7a97\u53e3\u4ece\u800c\u8fdb\u5165\u7f51\u9875\u76f4\u63a5\u83b7\u53d6\u5f53\u524d\u57df\u8d26\u6237\u540d\uff0c\u8bf7\u5404\u4f4d\u5927\u4f6c\u6307\u70b9\n\u4e4b\u524d\u6ca1\u5f04\u8fc7 <a href=\"http://asp.net\" rel=\"nofollow\">asp.net</a> \uff0c\u611f\u89c9\u65e0\u4ece\u4e0b\u624b</p>\n", 
      "date_published": "2023-11-21T03:17:02+00:00", 
      "title": "\u8bf7\u6559\u4e00\u4e0b asp.net core \u6280\u672f\u95ee\u9898", 
      "id": "https://www.v2ex.com/t/993760"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/hez2010", 
        "name": "hez2010", 
        "avatar": "https://cdn.v2ex.com/gravatar/381b2bc7dec2504c148fd6cd9d0db10c?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/991958", 
      "date_modified": "2023-11-15T00:13:16+00:00", 
      "content_html": "<p>\u66f4\u65b0\u5185\u5bb9\u8fd8\u662f\u5f88\u5de8\u91cf\u7684\uff0c8.0 \u7248\u672c\u6b63\u597d\u4e5f\u662f LTS \u5e26\u957f\u671f\u652f\u6301\u3002</p>\n<p>\u4e3b\u8981\u66f4\u65b0: </p>\n<p>.NET \u8fd0\u884c\u65f6\u548c\u57fa\u7840\u5e93: <a href=\"https://learn.microsoft.com/en-us/dotnet/core/whats-new/dotnet-8\" rel=\"nofollow\">https://learn.microsoft.com/en-us/dotnet/core/whats-new/dotnet-8</a></p>\n<p><a href=\"http://ASP.NET\" rel=\"nofollow\">ASP.NET</a> Core (Web \u5f00\u53d1): <a href=\"https://learn.microsoft.com/en-us/aspnet/core/release-notes/aspnetcore-8.0\" rel=\"nofollow\">https://learn.microsoft.com/en-us/aspnet/core/release-notes/aspnetcore-8.0</a></p>\n<p>Entity Framework Core (ORM): <a href=\"https://learn.microsoft.com/en-us/ef/core/what-is-new/ef-core-8.0/whatsnew\" rel=\"nofollow\">https://learn.microsoft.com/en-us/ef/core/what-is-new/ef-core-8.0/whatsnew</a></p>\n<p>MAUI (\u8de8\u5e73\u53f0 UI): <a href=\"https://learn.microsoft.com/en-us/dotnet/maui/whats-new/dotnet-8\" rel=\"nofollow\">https://learn.microsoft.com/en-us/dotnet/maui/whats-new/dotnet-8</a></p>\n<p>C#: <a href=\"https://learn.microsoft.com/en-us/dotnet/csharp/whats-new/csharp-12\" rel=\"nofollow\">https://learn.microsoft.com/en-us/dotnet/csharp/whats-new/csharp-12</a></p>\n<p>F#: (\u66f4\u65b0\u65e5\u5fd7\u8fd8\u6ca1\u53d1\u4e8e\u662f\u5148\u653e\u4e2a blog) <a href=\"https://devblogs.microsoft.com/dotnet/announcing-fsharp-8\" rel=\"nofollow\">https://devblogs.microsoft.com/dotnet/announcing-fsharp-8</a></p>\n<p>\u5b98\u65b9 Blog \u4ecb\u7ecd:</p>\n<p>.NET 8: <a href=\"https://learn.microsoft.com/en-us/dotnet/core/whats-new/dotnet-8\" rel=\"nofollow\">https://learn.microsoft.com/en-us/dotnet/core/whats-new/dotnet-8</a></p>\n<p><a href=\"http://ASP.NET\" rel=\"nofollow\">ASP.NET</a> Core 8: <a href=\"https://devblogs.microsoft.com/dotnet/announcing-asp-net-core-in-dotnet-8\" rel=\"nofollow\">https://devblogs.microsoft.com/dotnet/announcing-asp-net-core-in-dotnet-8</a></p>\n<p>Entity Framework Core 8: <a href=\"https://devblogs.microsoft.com/dotnet/announcing-ef8\" rel=\"nofollow\">https://devblogs.microsoft.com/dotnet/announcing-ef8</a></p>\n<p>Aspire (\u4e91\u539f\u751f\u5f00\u53d1): <a href=\"https://devblogs.microsoft.com/dotnet/introducing-dotnet-aspire-simplifying-cloud-native-development-with-dotnet-8\" rel=\"nofollow\">https://devblogs.microsoft.com/dotnet/introducing-dotnet-aspire-simplifying-cloud-native-development-with-dotnet-8</a></p>\n<p>C# 12: <a href=\"https://devblogs.microsoft.com/dotnet/announcing-csharp-12\" rel=\"nofollow\">https://devblogs.microsoft.com/dotnet/announcing-csharp-12</a></p>\n<p>F# 8: <a href=\"https://devblogs.microsoft.com/dotnet/announcing-fsharp-8\" rel=\"nofollow\">https://devblogs.microsoft.com/dotnet/announcing-fsharp-8</a></p>\n<p>MAUI: <a href=\"https://devblogs.microsoft.com/dotnet/announcing-dotnet-maui-in-dotnet-8\" rel=\"nofollow\">https://devblogs.microsoft.com/dotnet/announcing-dotnet-maui-in-dotnet-8</a></p>\n<p>\u6027\u80fd\u6539\u8fdb:</p>\n<p><a href=\"https://devblogs.microsoft.com/dotnet/performance-improvements-in-net-8\" rel=\"nofollow\">https://devblogs.microsoft.com/dotnet/performance-improvements-in-net-8</a></p>\n<p><a href=\"https://devblogs.microsoft.com/dotnet/this-arm64-performance-in-dotnet-8\" rel=\"nofollow\">https://devblogs.microsoft.com/dotnet/this-arm64-performance-in-dotnet-8</a></p>\n<p><a href=\"https://devblogs.microsoft.com/dotnet/dotnet-8-performance-improvements-in-dotnet-maui\" rel=\"nofollow\">https://devblogs.microsoft.com/dotnet/dotnet-8-performance-improvements-in-dotnet-maui</a></p>\n", 
      "date_published": "2023-11-14T17:53:59+00:00", 
      "title": ".NET 8 \u53d1\u5e03\u6b63\u5f0f\u7248\u4e86", 
      "id": "https://www.v2ex.com/t/991958"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/bthulu", 
        "name": "bthulu", 
        "avatar": "https://cdn.v2ex.com/gravatar/c87484c1062f990c6ef9e1a9c27bdc60?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/990376", 
      "date_modified": "2023-11-09T11:18:44+00:00", 
      "content_html": "<p>\u4e00\u4e2a\u9879\u76ee, \u975e\u8981\u62c6\u6210\u597d\u51e0\u4e2a\u9879\u76ee, \u6068\u4e0d\u5f97\u4e00\u4e2a class \u5bf9\u5e94\u4e00\u4e2a dll \u6587\u4ef6, \u5237\u7206 nuget \u6392\u540d</p>\n<p>\u8bf4\u7684\u5c31\u662f\u4f60, serilog, asyncex.</p>\n<p>\u4e00\u4e2a\u7b80\u5355\u7684\u5de5\u5177\u7c7b tools, string \u76f8\u5173\u7684\u8d77\u4e00\u4e2a\u9879\u76ee, int \u76f8\u5173\u7684\u8d77\u4e00\u4e2a\u9879\u76ee, long \u76f8\u5173\u7684\u8d77\u4e00\u4e2a\u9879\u76ee, \u7136\u540e\u4e00\u80a1\u8111\u4e0a\u4f20\u5230 nuget \u4e0a\u9762, \u4f60\u60f3\u5f15\u5165 tools, \u77ac\u95f4\u5c31\u7ed9\u4f60\u5e26\u5165 toos.string, <a href=\"http://tools.int\" rel=\"nofollow\">tools.int</a>, tools.long, tools.double, tools.float, tools.bool, tools.common, tools.context.</p>\n<p>\u603b\u4e4b\u4e00\u53e5\u8bdd, \u4e0d\u7528 dll \u6587\u4ef6\u628a\u4f60\u7684 publish \u6587\u4ef6\u5939\u585e\u7206\u7edd\u4e0d\u7f62\u4f11.</p>\n<p>\u5b83\u660e\u660e\u53ef\u4ee5\u7528\u4e00\u4e2a 30kb \u7684 tools.dll, \u5b83\u4e0d, \u5b83\u975e\u8981\u62c6\u6210 10 \u4e2a 3kb \u7684 dll</p>\n<p>\u5982\u679c\u4f9d\u8d56\u7684\u4e09\u65b9\u5e93\u7a0d\u5fae\u591a\u4e00\u70b9, \u90a3\u6700\u540e\u53d1\u5e03\u6587\u4ef6\u5939\u7b80\u76f4\u5c31\u8ddf node_modules \u4e00\u6837\u81c3\u80bf.</p>\n<p>\u6211\u89c9\u7740\u518d\u8fd9\u4e48\u4e0b\u53bb, \u603b\u6709\u4e00\u5929\u53d1\u5e03\u6587\u4ef6\u5939\u5185\u7684\u6587\u4ef6\u4f1a\u6210\u5343\u4e0a\u4e07\u751a\u81f3\u51e0\u5341\u4e07.</p>\n", 
      "date_published": "2023-11-09T11:16:01+00:00", 
      "title": ".net \u7684\u5e93\u4f5c\u8005\u662f\u4e0d\u662f\u90fd\u5728\u5411 js \u770b\u9f50?", 
      "id": "https://www.v2ex.com/t/990376"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/longmeier90", 
        "name": "longmeier90", 
        "avatar": "https://cdn.v2ex.com/gravatar/8dbc4123e8644a41d1409ad8dd0d0b35?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/977527", 
      "title": ".net \u521a\u901a\u7535\u6ca1\u6709\u89e6\u53d1\u600e\u4e48\u7528\u8f6f\u4ef6\u4e3b\u52a8\u83b7\u53d6\u7ea2\u5916\u4f20\u611f\u5668\u7684\u4fe1\u53f7\u3002", 
      "id": "https://www.v2ex.com/t/977527", 
      "date_published": "2023-09-27T03:52:31+00:00", 
      "content_html": "<a target=\"_blank\" href=\"http://\u6211\u7528.net\" rel=\"nofollow noopener\">\u6211\u7528.net</a> \u5f00\u53d1\u4e86\u4e00\u4e2a\u8f6f\u4ef6\uff0c\u4ece\u7ea2\u5916\u4f20\u611f\u5668\u8fde\u63a5\u7535\u8111\u7684\u7aef\u53e3(com3)\u83b7\u53d6\u9ad8\u4f4e\u7535\u5e73\u4fe1\u53f7\u6765\u5224\u65ad\u5f53\u524d\u8bbe\u5907\u5904\u5728\u662f\u5de6\u773c\u3001\u53f3\u773c\u4e0a\uff0c\u4f46\u662f\u6709\u4e00\u4e2a\u5f0a\u7aef\u662f\u53ea\u6709\u89e6\u53d1\u5b83\u624d\u4e3b\u52a8\u53d1\u51fa\u4fe1\u53f7\u3002<br /><br />\u6211\u6709\u4e00\u4e2a\u9700\u6c42\u662f\uff0c\u5f53\u8f6f\u4ef6\u521d\u59cb\u5316\u65f6\u9700\u8981\u4e3b\u52a8\u83b7\u53d6\u7ea2\u5916\u4f20\u611f\u5668\u5f53\u524d\u7684\u4fe1\u53f7\uff08\u56e0\u4e3a\u6ca1\u6709\u89e6\u53d1\u5f53\u524d\u4e0d\u4f1a\u53d1\u51fa\u4fe1\u53f7\uff09\uff0c\u5224\u65ad\u8bbe\u5907\u5904\u5728\u5de6\u773c\u8fd8\u662f\u53f3\u773c\u3002<br /><br />\u6709\u6ca1\u6709\u5f00\u53d1\u8fc7\u8fd9\u65b9\u9762\u7684\u5927\u4f6c\uff0c\u8bf7\u591a\u591a\u6307\u6559\u3002"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/gowl", 
        "name": "gowl", 
        "avatar": "https://cdn.v2ex.com/avatar/5ac2/2987/238695_large.png?m=1672871210"
      }, 
      "url": "https://www.v2ex.com/t/975403", 
      "date_modified": "2023-09-20T02:48:37+00:00", 
      "content_html": "<p>What's new in Windows Forms in .NET 7.0\n<a href=\"https://devblogs.microsoft.com/dotnet/winforms-enhancements-in-dotnet-7/\" rel=\"nofollow\">https://devblogs.microsoft.com/dotnet/winforms-enhancements-in-dotnet-7/</a></p>\n", 
      "date_published": "2023-09-20T01:17:55+00:00", 
      "title": "\u770b\u6765 Windows Forms \u4f9d\u7136\u6d3b\u7684\u597d\u597d\u7684", 
      "id": "https://www.v2ex.com/t/975403"
    }
  ]
}