我正在尝试构建一个Godot项目,它是我刚刚从我的回购系统中克隆出来的,可以在我的另一台机器上工作。
当我尝试在中构建时,我得到了错误
error CS0246: The type or namespace name 'Godot' could not be found (are you missing a using directive or an assembly reference?)我可以通过在Godot中创建一个基本的空场景项目并在Visual中打开新的解决方案并尝试构建来复制这一点。
发布于 2022-03-18 20:48:11
在以下几种情况下,这一问题可能会出现:
该解决方案是在KellyThomas对Github问题这里的响应中实现的。
在构建项目的过程中,godot程序集被放置在项目的. mono /程序集目录中。 场景(播放按钮位于戈多窗口的左上角)或单击单面面板上的构建按钮(与输出、调试器等在同一堆栈中的中间底部)。
因此,该项目没有构建的原因是,您的IDE或build系统没有所需的dll,当您从那里运行构建时,这个dll通常由Godot程序本身放置在那里。
对于本地Dev机器,解决方案是在Godot中构建或运行项目一次,它将将dll放置在正确的文件夹中,使之保持不变,从而允许其他应用程序(如Visual或Rider )创建生成(如果您对Godot使用Rider插件,我相信它将为您创建dll )。

在CI上,这种方法有点不同,因为我们每次都要重新开始,当可以使用类似MSBuild的东西时,我们不一定想运行Godot。
我的解决方案是在工作目录之外存储所需DLL的副本,并在运行MSBuild步骤之前将其复制到构建文件夹中。
在编写本报告时,构建Godo3.4.4 Mono项目所需的DLL是GodotSharp.dll。我怀疑每次升级戈多时,你都必须复制这个DLL的新版本。
一次手工构建一个Godot项目来生成DLL (基本的hello很好)。在戈多应用程序中构建项目之后,DLL存储在项目解决方案文件(.sln)旁边的文件夹中。文件夹取决于构建的配置。
.mono/assemblies/Debug
.mono/assemblies/Release在OSX中,.mono文件夹是隐藏的,按cmd + shift + .键查看查找器中的文件夹。
这就是如何使用yaml管道将文件复制到Azure Devops上的正确文件夹。
- task: CopyFiles@2
inputs:
SourceFolder: $(Agent.BuildDirectory)/GodotDlls/3.4.3
Contents: '**'
TargetFolder: $(binariesPath)/.mono/assemblies/Releasehttps://stackoverflow.com/questions/71533027
复制相似问题