4

我在使用 Photoshop CS4 自动化时遇到了一点问题。当我想在我的 Visual Studio 2008 项目中添加对 COM API 的引用时,Adobe Photoshop 对象库没有显示在“COM”选项卡下的“添加引用”面板中。但是,Illustrator CS4 类型库显示得很好。Photoshop 本身运行完美,无论是 32 位还是 64 位。Photoshop 与 Master Suite CS4 的所有其他应用程序一起安装。

这在 Windows 7 和 Windows XP 上都不起作用,在 2 台不同的机器 + 1 台虚拟 PC(Vmware 工作站)上。我也在 VS2010 Beta 1 和 MS Word VB 编辑器中尝试过,但在这里也不起作用。

有人有什么想法吗?如果您能够添加参考,您的配置是什么?

4

2 回答 2

6

无需创建虚拟机,在 COM 未显示的情况下,某些版本的 Photoshop 存在问题,以更正此问题以管理员身份运行 Photoshop(仅一次),这将更正注册表项和 COM然后将可用。

于 2012-01-17T12:04:32.027 回答
3

最后,解决方案是使用带有独立安装 Photoshop(而不是整个创意套件)的 Windows XP 虚拟机。您可以使用它生成一个 dll,该 dll 可以在任何安装了 Photoshop CS4(独立或创意套件)的任何 Windows 上运行。

编辑:这是整个过程

使用您最喜欢的虚拟化解决方案(Vmware、VirtualBox、VirtualPC 等)创建 Windows XP 虚拟机。安装 Visual Studio 2008 和 Photoshop CS4 的独立安装(整个创意套装在我的情况下不起作用,但你的里程可能会有所不同)。打开 Visual Studio 并创建一个新的 VB.NET 或 C# 类库。完成后,右键单击解决方案资源管理器中的“参考”文件夹,然后选择添加参考。转到 COM 选项卡,然后搜索“Adobe Photoshop CS4 类型库”。这将添加两个新的引用:“Photoshop”和“PhotoshopTypeLibrary”。创建一个虚拟函数(尽管它可能不是必需的)并构建您的项目。作为一个很好的方法,您可以确保将编译模式设置为“发布”,但这不是必需的,调试可以正常工作。构建项目后,转到 VM 硬盘驱动器上的项目文件夹并查找 bin\release 文件夹。在那里您将看到 3 个 dll:一个以您的项目命名,一个以 Photoshop.dll 命名,另一个以 namde Interop.Photoshop.dll 命名。将最后两个复制到装有 Windows 7 x64 的开发机器上。然后,您可以通过添加引用并浏览这 2 个 dll 将它们导入您的项目中。

我注意到的一件非常甜蜜的事情是,尽管 dll 是在 32 位 VM 上编译的,但如果您的 .NET 程序在 64 位模式下运行,它们仍然会调用 64 位版本的 Photoshop。

我希望它有帮助!

于 2009-08-24T03:18:39.197 回答