我想更改我的统一项目的“csproj”文件,以便能够以 this 访问特定库回答建议。
我正在手动编辑文件,但每次我重新加载项目时,“csproj”文件都会返回到它的初始状态。
这是一个常见问题吗?有没有办法避免这种情况并永久更改文件?
编辑:我的目标是使用CSharpCodeProvider,所以如果有另一种方法可以在不更改“csproj”文件的情况下使用它,我会很乐意采用这种方法
最佳答案
据我所知,您无法阻止 Unity 在重新编译脚本时覆盖您的 csproj 文件。
在处理较大的代码库和 Unity3D 时,我倾向于将大部分代码放入单独的 .Net 程序集 (DLL) 中。当我在多个项目和游戏服务器之间共享代码时,这对我很有帮助,而且 Unity 在检测到更改时不需要编译所有脚本。
为此,启动您选择的 .Net IDE 并创建一个新的类库 项目(它将输出一个 .dll)。确保它针对 .Net Framework 3.5 或更低版本。然后,在生成后步骤中将输出的 .dll 复制到 Unity 项目的 Assets 文件夹中。我喜欢使用构建后步骤来防止我在更改后忘记复制程序集。
Unity 在创建其 C# 项目时会自动引用项目Assets 文件夹中的 DLL。这意味着所有包含的代码都可以在您的脚本中使用。但请注意,反之则不会那么容易:您不能在单独的项目中使用来自 Unity 脚本的代码。
取决于你想用 CSharpCodeProvider 做什么您可以将您的生成逻辑(以及必要的 Import
指令)放入这样一个单独的项目中。
编辑:有关我们如何设置项目结构的更多信息,您可以观看 this talk来自 Unite11 的 Jagged Alliance Online 首席程序员。
关于c# - 每次我重新加载项目时,统一的 Csproj 文件都会更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30877355/