Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Unity中使用共享C#项目?_C#_Unity3d_Dll - Fatal编程技术网

如何在Unity中使用共享C#项目?

如何在Unity中使用共享C#项目?,c#,unity3d,dll,C#,Unity3d,Dll,我有个问题已经困扰了我好几个星期了 我有以下设置: 服务器(C#项目) 共享(图书馆) 客户(统一项目) 其中服务器和客户端都使用共享库 现在,我手动构建shared.dll并将其复制到Unity项目的Assets文件夹中 我觉得很麻烦。我正在寻找一种自动方式,我做了一些研究,了解到由于Unity重建了项目文件,您无法将项目链接到它,因为它将在重建时自动删除 我的问题是:如何将外部项目链接到Unity?在Visual Studio中(2017年): 右键单击解决方案浏览器中的解决方案 添加

我有个问题已经困扰了我好几个星期了

我有以下设置:

  • 服务器(C#项目)
  • 共享(图书馆)
  • 客户(统一项目)
其中服务器和客户端都使用共享库

现在,我手动构建shared.dll并将其复制到Unity项目的Assets文件夹中

我觉得很麻烦。我正在寻找一种自动方式,我做了一些研究,了解到由于Unity重建了项目文件,您无法将项目链接到它,因为它将在重建时自动删除

我的问题是:如何将外部项目链接到Unity?

在Visual Studio中(2017年):

  • 右键单击
    解决方案浏览器中的
    解决方案
  • 添加
  • 现有项目…

然后导航到Unity或Shared Library项目的
.csproj
文件,并选择
Open

我正在使用类似的设置。使用Visual studio,我刚刚将项目属性->构建中的构建目录更改为资产文件夹的构建目录,我知道有两种方法

第一个也是最简单的方法是使用Microsoft的MSBuildForUnity(它是在原始帖子之后创建的),它就是为此目的而构建的

另一种选择(在最初发布时可能是这样的)是使用未记录的过程来创建
AssetPostprocessor
的子类,并在GeneratedSLSolution(字符串路径、字符串内容)中创建函数
私有静态字符串
手动操作Unity将生成的
sln
文件,以包含您对共享库的引用


这样,每次Unity重新创建
sln
文件时,它现在也将包含您的引用。缺点是内容以
字符串的形式出现,因此您可能希望通过更多库对其进行分析,以确保结果有效或解决方案非常严格。

在解决方案文件中添加引用。它在重建时被删除。您有三个不同的项目,是吗?将它们全部添加到同一个解决方案中。是的,我有三个不同的项目。我不确定,是否可以将Unity项目添加到现有解决方案中?我搜索了,但找不到。只要它遵循
csproj
标准,yeahOkay,它可以正常工作几秒钟,但它要求重新添加引用。使用喷气式飞机驾驶这很奇怪。这可能是Rider的错误,或者可能需要其他过程?