5

我正在使用 SAS Enterprise Guide 4.1,我的项目包含大量代码。该代码被组织在外部 .sas 文件中,主要是因为 .egp 文件是二进制文件,而纯文本 .sas 文件与 git 配合得更好。

问题是 SAS EG 4.1 使用绝对路径来引用外部 .sas 文件,因此将项目移动到不同的 PC 会破坏对代码文件的引用(除非另一台 PC 使用相同的目录结构)。

有没有办法强制 SAS EG 4.1 使用相对路径(似乎 SAS EG 4.3 使用相对路径,但升级不是一种选择)。如果没有,是否至少有一种聪明的方法可以轻松移动项目?

现在,每次我必须移动项目时,我都会将代码嵌入到项目中(这会破坏版本控制)。另一种方法是从项目中删除所有引用并重新添加它们(这是很多工作)。

4

2 回答 2

4

据我了解,EGP 文件只是 zip 文件。所以你应该有几种方法来解决这个问题。对我来说最简单的似乎是使用 git 对 zip 文件中的文件进行版本控制。因此,将 .egp 文件解压缩到一个文件夹并对该文件夹进行版本控制。当您想返回时,压缩文件夹,然后将其名称更改为 .egp

事后应该有一些方法来修改包含 .egp 文件中的路径的文件,但我对 .egp 文件还不够熟悉,可以肯定。

于 2012-11-06T21:12:33.667 回答
4

所以 EGP 文件只是 zip 档案。在存档中有一个名为“project.xml”的文件,其中包含如下(子)节点:

<CodeTask>
  <IncludeWrapper>True</IncludeWrapper> 
  <Embedded>False</Embedded> 
  <LinkedOpenName>D:\some\path\to\program.sas</LinkedOpenName> 
</CodeTask>

这条路似乎只有在绝对可靠的情况下才有效。相对路径可能有效,但我不知道相对于放置它的内容(相对于项目路径不起作用)。

但是现在我可以编写一个简单的脚本来在项目移动后通过这个 xml 文件并更新路径(我将 .sas 文件保存在与 .egp 文件相同的目录中,所以这应该不是问题)。

于 2012-11-07T09:56:50.133 回答