如何在C#中添加对Photoshop CS4 COM的引用

时间:2009-07-21 19:10:16

标签: c# visual-studio-2008 com photoshop

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

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

有人有任何想法吗?如果您能够添加引用,那么您的配置是什么?

2 个答案:

答案 0 :(得分:5)

没有必要创建一个虚拟机,在COM没有显示的情况下,某些版本的Photoshop存在问题,要更正此操作Photoshop作为管理员(只需一次),这将更正注册表项然后COM将可用。

答案 1 :(得分:3)

最后,解决方案是使用Windows XP虚拟机,独立安装Photoshop(而不是整个创意套件)。您可以使用它来生成适用于任何Windows的任何Windows上的dll(独立或创意套件)。

编辑:这是整个过程

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

我注意到一个非常好的事情是,尽管dll是在32位虚拟机上编译的,但如果您的.NET程序以64位模式运行,它们仍会调用64位版本的Photoshop。

我希望它有所帮助!