您的位置:首页 > 其它

Projeny-YAML设置参考文档(三)

2017-07-22 15:09 225 查看

Projeny.yaml 参考

“Projeny.yaml”文件包含Projeny的常规设置,包括Unity等工具的位置,放置日志输出的位置等。

请注意,像Projeny中的所有配置文件一样,Projeny.yaml使用 YAML标准进行定义。

当使用
prj
命令从命令行运行Projeny时,它会从以下位置加载所有配置文件:

[Current directory]/Projeny.yaml


[User Home Directory]/Projeny.yaml
- 例如,如果您的用户帐户名称是John:
C:/Users/John/Projeny.yaml


通常,您将在这两个位置配置文件。您的主目录中的配置文件对于定义Projeny有时运行的工具(如Visual Studio和Unity)的路径特别有用。

如果您遵循说明来创建一个新的基于Projeny的项目集,您会发现默认的Projeny.yaml文件是使用以下内容:

PathVars:
UnityProjectsDir: '[ConfigDir]/UnityProjects'
LogPath: '[ConfigDir]/PrjLog.txt'


这是Projeny所需的绝对最小配置。 (实际上,你不需要严格地定义“LogPath”,但是如果你想要详细的错误信息,那么每次在这个
Projeny.yaml
目录下运行
prj
命令时,
PrjLog.txt
文件将更新更详细的信息)

以下是配置设置的完整列表。请注意,您不需要包括大多数这些,因为它们具有合理的默认值,但它们列在此处供参考。注意:可以通过在“#”字符前面加上行来添加注释。

#如果你使用命令行很多,定义一个可能是有用的
#别名为您正在更改的常见项目。
#这些从演示项目采取。
#运行`prj -p am`和运行`prj -p AllMovers是一样的
ProjectAliases:
am: AllMovers
cm: CubeMover
sm: SphereMover

# 这里的给定项目将由`prj`命令行使用工具,每当`-p`选项不包括在内
DefaultProject: AllMovers

# 这是由projeny使用的路径的集合
# 您也可以在这里定义自己的变量,并在任何配置文件中使用它们
# 另请注意,您可以在这里使用环境变量,例如:[SOME_ENVIRONMENT_VARIABLE]
PathVars:
# 此设置是必需的
# 这将决定projeny在哪里寻找Unity项目
UnityProjectsDir: '[ConfigDir]/UnityProjects'

# 此设置对于许多不同的Projeny操作是必需的
# 所以Projeny知道如何运行Unity。默认情况下会这样
# 猜猜以下路径
UnityExePath: 'C:/Program Files/Unity/Editor/Unity.exe'

# 当使用命令行选项`-b`或 `bf`或`bcs`(有关这些的详细信息,请参阅命令行参考部分)
# 它用于构建可视化工作室解决方案文件
# 默认情况下,它将假定以下路径,除非您自己指定
MsBuildExePath: 'C:/Windows/Microsoft.NET/Framework/v4.0.30319/msbuild.exe'

# 当UseDevenv设置(见下文)设置为true时,此值是必需的
VisualStudioCommandLinePath: 'C:/Program Files (x86)/Microsoft Visual Studio 12.0/Common7/IDE/devenv.com'

# Package Manager中的“Open Solution”按钮需要此值,,
# 或等效的命令行选项`prj -ocs`
VisualStudioIdePath: 'C:/Program Files (x86)/Microsoft Visual Studio 12.0/Common7/IDE/devenv.exe'

# 该值将确定`prj`命令输出的位置
# 详细的记录信息
LogPath: '[ConfigDir]/PrjLog.txt'

Console:
# 如果您使用支持多种颜色的控制台,请设置这是true,
# 所以警告是黄色的,错误是红色的等
UseColors: False

# 定制发布源也可以在`Projeny.yaml`中指定
# 您希望“Releases”列表不仅包含Asset Store缓存中的项目
ReleaseSources:
- LocalFolder:
Path: 'C:/MyUnityPackages'

# 请注意,您可以指定多个本地文件夹
- LocalFolder:
Path: 'G:/NetworkSharedUnityPackages'

# 请注意,您可以指定多个文件服务器
- FileServer:
ManifestUrl: 'http://localhost:8092/ProjenyReleaseManifest.txt'

Compilation:
# 使用命令行选项`-b`或`bf`时使用该值或`bcs`(有关详细信息,请参阅命令行参考部分)
# 默认情况下,Projeny将使用MsBuild(使用MsBuildExePath定义上面)
# 构建visual studio解决方案。
# 但是,有些人们可能更喜欢使用devenv.exe,因为与msbuild不同
# 这样做可以保证与建筑物使用相同的行为
# Visual Studio GUI。所以如果你想使用devenv.exe,
# 将此设置为true,然后确保指定路径变量
# 'VisualStudioCommandLinePath'以及上面的PathVars部分
UseDevenv: False

SolutionGeneration:
# 这将用于生成的visual studio项目的“DefaultNamespace”字段
RootNamespace: MyCompanyName

Unity:
# 将此选项包含在默认的新项目中,以使用64位窗口来构建它们还是32位
Win64IsDefault: True


ProjenyProject.yaml 参考

在大多数情况下,您可以使用Unity内的Package Manager编辑“ProjenyProject.yaml”文件。但是,Package Manager GUI不包括所有内容(例如,解决方案文件夹无法从包管理器配置)

请注意,像Projeny中的所有配置文件一样,ProjenyProject.yaml是使用 YAML标准定义的。

请注意,您可以定义多个“ProjenyProject.yaml”文件,结果将其全部应用于项目。 Projeny找到这个文件有4个地方。例如,给定一个名为“Foo”的项目,这些位置如下所示:

UnityProjects/Foo/ProjenyProject.yaml


UnityProjects/Foo/ProjenyProjectCustom.yaml


UnityProjects/ProjenyProject.yaml


UnityProjects/ProjenyProjectCustom.yaml


这些都遵循相同的格式。 (3)和(4)由所有项目自动使用,所以放置要包含在任何地方的软件包是一个很好的选择。

(2)和(4)应该被源代码控制忽略,是添加用户特定包的一个方便的地方。例如,同一项目中的不同开发人员可能对某些统一插件(例如自定义统一控制台,用于在场景之间切换的弹出窗口等)可能具有不同的偏好设置。因此可以使用“ProjenyProjectCustom.yaml”文件,以个别方式添加包。

“ProjenyProject.yaml”的格式如下:

AssetsFolder:
- {PackageName}
- {PackageName}

PluginsFolder:
- {PackageName}
- {PackageName}
- {PackageName}

SolutionProjects:
- {PackageName}
- /{PackageNamePattern}
- /{PackageNamePattern}
- {PackageName}

SolutionFolders:
{FolderName}: /{PackageNamePattern}
{FolderName}: /{PackageNamePattern}

PackageFolders:
- {DirectoryPath}
- {DirectoryPath}

TargetPlatforms:
- Windows
- WebPlayer
- Android
- WebGL
- OSX
- Linux
- iOS


Where:

*
{PackageName}
表示在一个“PackageFolders”目录中的目录的名称

*
{PackageNamePattern}
表示一个python正则表达式,用于匹配“UnityPackages”目录中的多个包

请注意以下几点:

* “AssetsFolder”类别下方列出的软件包将直接放置在项目的“Assets /”目录下

* “PluginsFolder”类别下方列出的软件包将直接放置在项目的“Assets / Plugins”目录下

* 在“SolutionProjects”类别下面的所有软件包将生成自己的.csproj文件,当运行
Project - > Update C#Project
或在程序包管理器中点击’Update Solution`按钮时

* 请注意,您也可以使用正则表达式,而不是显式列出完整的包名称。例如,如果要为项目中的每个包创建一个C#项目,则添加符合所有内容的“/.*”行

* 您还可以选择将文件夹添加到生成的解决方案中,以组织相关项目在一起。每个文件夹都有一个正则表达式,用于过滤完整的项目列表,并且还必须使用正斜杠

* 包文件中使用的所有正则表达式遵循为python定义的正则表达式规则(更多详细信息,请参见此处

ProjenyPackage.yaml 参考

请注意,像Projeny中的所有配置文件一样,“ProjenyPackage.yaml”使用 YAML标准进行定义。与项目设置不同,没有用于软件包设置的GUI,因此您必须手动编辑“ProjenyPackage.yaml”文件。

在大多数情况下,您的ProjenyPackage.yaml将简单列出该软件包依赖的其他软件包。它将如下所示:

Dependencies:
- CubeMover
- SphereMover


这是从演示项目(在UnityPackages / AllMovers / ProjenyPackage.yaml)。

请注意,此文件是可选的。当没有添加到您的包中时,您的包将被假定为具有零依赖关系。

这里有一些其他的选择不常见的情况。 “ProjenyPackage.yaml”的完整格式如下:

Dependencies:
- {PackageName}
- {PackageName}
- {PackageName}

Extras:
- {PackageName}
- {PackageName}

FolderType: {FolderType}

Platforms:
- {PlatformName}
- {PlatformName}
- {PlatformName}

ForcePluginsDirectory: {True/False}
ForceAssetsDirectory: {True/False}


注意:

*
{PackageName}
表示您的
UnityPackages
目录下的目录的名称。

* 在“Dependencies”或“Extras”下列出的任何包将始终添加到包含此包的每个项目中

* Dependencies和Extras之间的唯一区别是Projeny将为Dependencies下的软件包创建一个csproj依赖关系,而不适用于Extras下的软件包。大多数时候你只想添加到依赖关系,但是在极少数情况下,使用Extras可能会很有用。例如,如果您已经将包的单元测试拆分成自己独立的包,并且您希望始终将其包含在包中,那么可以将它们添加到“其他”列表中。您不想将它们添加到依赖关系中,因为这将创建循环依赖关系,Projeny将显示错误。

* 默认情况下,Projeny将假定您的软件包适用于所有平台。然而,如果设置了“Platforms”列表,Projeny将跳过除所列平台之外的所有平台的此软件包,因此您的软件包目录将仅在这些平台的Unity项目中链接。
{PlatformName}
可以是以下之一:

* Windows

* WebPlayer

* Android

* WebGL

* OSX

* Linux

* iOS

* 当设置“ForcePluginsDirectory”时,这将要求包总是放置在“Assets / Plugins / PackageName”下。

* 这是因为某些软件包具有硬编码路径,要求软件包位于特定位置

*
ForceAssetsDirectory
的行为类似,并且将确保该包将永远放在
Assets / PackageName


*
FolderType
可以设置为以下任一项:

* Normal

* 这是未指定此设置时的默认值

* StreamingAssets

* 包将被放置在
Assets / StreamingAssets / YourPackageName


* 这对Unity有特殊的含义 - 有关详细信息,请参阅此处

* WebGL

* 包将被放置在
Assets / Plugins / WebGL


* 这对Unity有特殊含义 - 有关详细信息,请参阅此处

* AndroidProject

* 包将被放在
Assets / Plugins / Android


* 这对Unity有特殊含义 - 有关详细信息,请参阅此处

* AndroidLibraries

* 包将被放在
Assets / Plugins / Android / libs


* 这对Unity有特殊的含义 - 有关详细信息,请参阅此处

* iOS

* 包将被放置在
Assets / Plugins / ios


* 这对Unity有特殊含义 - 有关详细信息,请参阅此处
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Projeny YAML
相关文章推荐