我在Outlook 2007加载项中使用了一些Win32 dll。
所以我添加了dll,使用构建操作“Content”并复制到本地目录。
要获得它们的路径,我通常会使用:
Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "MyDll.dll");
当ClickOnce发布时,Assembly.GetExecutingAssembly没有给我所有ClickOnce文件的标准路径。我的文件位于%appdata%.. \ Local \ Apps \ 2.0 中,但程序集位于%appdata%.. \ Local \ assembly 。
有没有更好的方法从ClickOnce部署的Outlook加载项中获取这些dll的路径?
答案 0 :(得分:2)
此代码现在给我正确的路径:
string path = Path.Combine(AppDomain.CurrentDomain.SetupInformation.ApplicationBase, "MyDll.dll");
在解析命令行参数时,我不得不使用SetupInformation,并且一些调试使我进入了这个属性。
如果它给我带来任何麻烦,我会回复,因为我们需要在几台机器上安装,看看会发生什么。
答案 1 :(得分:0)
您是否尝试过添加它们作为参考?我相信加载项应该知道位置,如果你以这种方式。只需看看它在添加时如何处理Office Interops(和其他引用) - 无需指定,只需在代码中引用它们。