我使用的是SAS Enterprise Guide 4.1,我的项目包含大量代码。 该代码在外部.sas文件中组织,主要是因为.egp文件是二进制文件 纯文本.sas文件可以更好地使用git。
问题是SAS EG 4.1使用绝对路径来引用外部.sas文件,所以 将项目移动到不同的PC会破坏对代码文件的引用(除非另一个 PC使用相同的目录结构。)
有没有办法强制SAS EG 4.1使用相对路径(似乎SAS EG 4.3使用 相对路径,但升级不是一个选项)。如果没有,至少有一种聪明的方法 轻松移动项目?
目前,每次我必须移动项目时,我都会将代码嵌入到项目中(这会破坏版本控制)。另一种方法是删除项目中的所有引用并重新添加它们(这是很多工作)。
答案 0 :(得分:4)
EGP文件只是zip文件。所以你应该有几种方法来解决这个问题。对我来说最简单的似乎是使用git对zip文件中的文件进行版本控制。因此,将.egp文件解压缩到该文件夹和该文件夹的版本。如果要返回,请压缩文件夹,然后将其名称更改为.egp
事后也应该有一些方法来修改包含.egp文件中路径的文件,但是我对.egp文件还不够熟悉。
答案 1 :(得分:4)
所以EGP文件只是zip档案。 在存档中有一个名为“project.xml”的文件,其中包含(子)节点,如下所示:
<CodeTask>
<IncludeWrapper>True</IncludeWrapper>
<Embedded>False</Embedded>
<LinkedOpenName>D:\some\path\to\program.sas</LinkedOpenName>
</CodeTask>
这条路径似乎只有在它是apsolute时才有用。相对路径可能会起作用 我不知道相对于它的内容(相对于项目路径不起作用)。
但现在我可以编写一个简单的脚本来在项目移动后浏览这个xml文件 并更新路径(我将.sas文件保存在与.egp文件相同的目录中,因此这应该不是问题。)