我正在尝试进入COM互操作领域。
下面是一个简单的例子:
SpeechLib.SpVoice voice = new SpVoice();
voice.Speak("Hello sucker!",SpeechVoiceSpeakFlags.SVSFDefault);
当然,在之前我需要添加对
%windir%\system32\speech\common\sapi.dll
的引用,VS会将Interop.SpeechLib.dll
添加到项目文件夹中,现在我必须将这个200kb的库与我的简单4kb应用程序一起分发。我能否使用
[DllImport]
而不是添加引用,因为在大多数情况下,语音库已经存在于客户端的计算机上了?您可以展示一下如何使用
DllImport
技术重写上面的代码吗?
Copy Local
设置为false
,而是将Embed Interop Types
设置为true
,这样你使用的类型就会成为程序集的一部分,此时Copy Local
就变成了false
,无法更改。 - nurchi