目前【暂时】解决了问题,整个过程扑朔迷离到以至于我不知道如何去形容这次遇见的情况。
搜遍全网,国内目前没有可以解决这个问题的博客。有可能仅使用于我自己的情况。
外网unity社区也有相关的问题
遗憾的是,这个问题提出一年多了,仍然没有确切的解决方法。也许只在少数人的电脑上会出现这样的情况。
Visual Studio Community 2022,
Unity 2022.1.18f1c1(事实上2021版本也出现了这样的情况)
这里可以确保环境和组件没有任何问题。
点击VS中的附加到Unity,经过短暂的等待后,没有发生任何事情。下面出现这样的提示

目标计算机积极拒绝,无法连接。(VS2019甚至不会出现这样的提示。升级到2022后我才排除了VS的问题)
理论上,56800端口应该是Unity进程应该开启监听的端口,我使用netstat查找后并没有发现有这个端口

最诡异的事情是,这种情况是概率事件。在我几十上百次的尝试中,在外部条件相同的情况下,有时候仅仅是重启了unity,就能成功附加。这是最让人摸不着头脑的情况。
目前暂时得出结论,是Unity开启监听端口时出现了问题。理应开启的端口没有开启。
此外,偶尔会出现“操作无法完成。未指定的错误”的弹窗,原因不明
并没有选择重装系统或者重买电脑,这是我最后的倔强。
提前说明一下,该方法并不能完全解决问题,只是将附加失败的概率从99%降低到了30%,仍然会出现一些我无法掌握的情况。很有可能在某次重启后,这个方法也不再奏效了。
这个方法来自于unity3D外网社区的一个帖子。

如图所示,将Edit->Preferences->External Tool 中的Generate .csproj files for中的复选框仅保留Player project,然后点击Regenerrate project files 重新构建文件,之后重启Unity即可。
另外,外网也有点击Regenerrate project files以重新构建项目就能解决的情况。在这里我的建议是,不管复选框 里你选了哪些选项,这个按钮你都得点击,并多次尝试。

值得一提的是,当允许VS附加到Unity时,我的Unity往往会发出如下警告:

至今没有查找到该警告的相关资料,但通常出现这个警告后我的VS才能附加到Unity中。
PS:后面又出现了一次没有警告也能附加的情况。我实在晕了。
接下来在VS中查看一下Unity实例。点击 调试->附加Unity调试程序:

可以看到Unity开放了56276端口.
使用端口查询指令,发现Unity开放了56276的TCP监听端口,现在一个VS实例与该端口建立通信,现在是正常的情况。

该方法有一定失败的可能性。如果附加仍然失败,将之前取消勾选的Generate .csproj files for中的选项选上,再次重新构建项目,重启unity,反复尝试即可。
寻找解决方法至今寻找了三天,目前我也不敢说自己成功解决了问题。在写这篇博客的同时我仍在反复尝试,但仍然经常出现附加失败的情况。
这里仅做一个猜测:Unity在启动的时候会从56000往上的端口随机选取一个端口作为监听其他IDE调试的端口,有时候会遇到一些不可抗拒的因素导致端口开放失败,也许是进程占用,也许是操作系统的问题,也许是Unity内部的一些BUG。总之,Unity尝试打开一个端口失败,却把这个端口号传递给了VS,VS试图与这个端口进行连接,最后以失败告终。
重新构建项目和反复重启Unity的目的也许是让Unity反复尝试寻找到一个真正能打开的端口。
最后,在真正解决这个问题之前,如果某次VS成功附加上了Unity,那就尽量不要关掉Unity了,万一再也成功不了呢。
我在从html页面生成PDF时遇到问题。我正在使用PDFkit。在安装它的过程中,我注意到我需要wkhtmltopdf。所以我也安装了它。我做了PDFkit的文档所说的一切......现在我在尝试加载PDF时遇到了这个错误。这里是错误:commandfailed:"/usr/local/bin/wkhtmltopdf""--margin-right""0.75in""--page-size""Letter""--margin-top""0.75in""--margin-bottom""0.75in""--encoding""UTF-8""--margin-left""0.75in""-
在railstutorial中,作者为什么选择使用这个(代码list10.25):http://ruby.railstutorial.org/chapters/updating-showing-and-deleting-usersnamespace:dbdodesc"Filldatabasewithsampledata"task:populate=>:environmentdoRake::Task['db:reset'].invokeUser.create!(:name=>"ExampleUser",:email=>"example@railstutorial.org",:passwo
使用带有Rails插件的vim,您可以创建一个迁移文件,然后一次性打开该文件吗?textmate也可以这样吗? 最佳答案 你可以使用rails.vim然后做类似的事情::Rgeneratemigratonadd_foo_to_bar插件将打开迁移生成的文件,这正是您想要的。我不能代表textmate。 关于ruby-使用VimRails,您可以创建一个新的迁移文件并一次性打开它吗?,我们在StackOverflow上找到一个类似的问题: https://sta
在选择我想要运行操作的频率时,唯一的选项是“每天”、“每小时”和“每10分钟”。谢谢!我想为我的Rails3.1应用程序运行调度程序。 最佳答案 这不是一个优雅的解决方案,但您可以安排它每天运行,并在实际开始工作之前检查日期是否为当月的第一天。 关于ruby-如何每月在Heroku运行一次Scheduler插件?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/8692687/
我对最新版本的Rails有疑问。我创建了一个新应用程序(railsnewMyProject),但我没有脚本/生成,只有脚本/rails,当我输入ruby./script/railsgeneratepluginmy_plugin"Couldnotfindgeneratorplugin.".你知道如何生成插件模板吗?没有这个命令可以创建插件吗?PS:我正在使用Rails3.2.1和ruby1.8.7[universal-darwin11.0] 最佳答案 随着Rails3.2.0的发布,插件生成器已经被移除。查看变更日志here.现在
我尝试运行2.x应用程序。我使用rvm并为此应用程序设置其他版本的ruby:$rvmuseree-1.8.7-head我尝试运行服务器,然后出现很多错误:$script/serverNOTE:Gem.source_indexisdeprecated,useSpecification.Itwillberemovedonorafter2011-11-01.Gem.source_indexcalledfrom/Users/serg/rails_projects_terminal/work_proj/spohelp/config/../vendor/rails/railties/lib/r
我正在尝试在我的centos服务器上安装therubyracer,但遇到了麻烦。$geminstalltherubyracerBuildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingtherubyracer:ERROR:Failedtobuildgemnativeextension./usr/local/rvm/rubies/ruby-1.9.3-p125/bin/rubyextconf.rbcheckingformain()in-lpthread...yescheckingforv8.h...no***e
我花了三天的时间用头撞墙,试图弄清楚为什么简单的“rake”不能通过我的规范文件。如果您遇到这种情况:任何文件夹路径中都不要有空格!。严重地。事实上,从现在开始,您命名的任何内容都没有空格。这是我的控制台输出:(在/Users/*****/Desktop/LearningRuby/learn_ruby)$rake/Users/*******/Desktop/LearningRuby/learn_ruby/00_hello/hello_spec.rb:116:in`require':cannotloadsuchfile--hello(LoadError) 最佳
Sinatra新手;我正在运行一些rspec测试,但在日志中收到了一堆不需要的噪音。如何消除日志中过多的噪音?我仔细检查了环境是否设置为:test,这意味着记录器级别应设置为WARN而不是DEBUG。spec_helper:require"./app"require"sinatra"require"rspec"require"rack/test"require"database_cleaner"require"factory_girl"set:environment,:testFactoryGirl.definition_file_paths=%w{./factories./test/
我在pry中定义了一个函数:to_s,但我无法调用它。这个方法去哪里了,怎么调用?pry(main)>defto_spry(main)*'hello'pry(main)*endpry(main)>to_s=>"main"我的ruby版本是2.1.2看了一些答案和搜索后,我认为我得到了正确的答案:这个方法用在什么地方?在irb或pry中定义方法时,会转到Object.instance_methods[1]pry(main)>defto_s[1]pry(main)*'hello'[1]pry(main)*end=>:to_s[2]pry(main)>defhello[2]pry(main)