我为我正在处理的VBA项目编写了一个保存并打开对话框的附加组件-下面是链接VBA:Get-Excel FileDialogOpen指向"我的电脑";默认情况下(感谢@mehhow的帮助)。
现在,这个加载项(实际上称为类库)与我的计算机上的vba项目配合得很好,我一直在开发它。但是,现在要在服务器上使用这个加载项,我无法成功注册加载项,以便vba项目可以看到它。
我在我的Windows 8机器上用VS 2013 Express在C#中为桌面编写了对话框加载项,现在我们正试图在Windows server 2008机器上测试它,VBA工程将在该机器上运行。
我曾尝试在服务器上使用regsvr32命令,并在VS2013中寻找部署选项,但似乎都不起作用!我也尝试过寻找解决方案,但到目前为止没有成功。
如果有人对如何做到这一点有任何想法,我们将不胜感激。很抱歉,如果我没有使用正确的术语。插件等,但我希望你明白我的意思。
非常感谢
特里斯坦。
在尝试了各种不同的方法后,我似乎终于做到了,所以我不确定这是你需要做的全部,但希望它能在未来帮助别人。
首先,Visual Studio 2013学习版不包括"安装项目",因此您无法在其中创建用于在其他计算机上安装项目的部署包,因此必须手动执行。
然后,你的目标计算机上也需要与你过去写项目时相同的.Net框架——如果你仔细考虑,这是一个很容易的问题,但需要进行工作检查。
所以我复制了.dll
、.pdb
&来自我的开发PC上Visual Studio项目binDebug
文件夹的.tlb
文件,并将它们放入服务器C:
驱动器上的文件夹中。
然后以管理员身份打开命令提示符(右键单击开始菜单中的图标并单击"以管理员身份运行"。然后在命令提示符中使用cd C:WindowsMicrosoft.NETFrameworkv4.0.30319
文件夹导航到目标PC的.Net文件夹,您会发现"
在那里,我运行了regasm /codebase "C:MyClassLibraryFolderMyClassLibrary.dll"
和regasm /tlb /codebase "C:MyClassLibraryFolderMyClassLibrary.dll"
,这似乎注册了所有内容,并让我的VBA项目在服务器上使用MyClassLibrary运行。
根据我的阅读,regasm
与.Net 4+一起安装(如果在服务器上的这个文件夹中找到它),gacutil
似乎不再包含在内,当我试图通过在服务器上复制它来运行它时,它似乎没有任何作用。
如果这不起作用,我也运行了这些命令,所以他们可能已经添加到寄存器类型库x64 regtlib中的win regtlibv12.exe
中,该库也提到了Regasm /tlb
这个链接也类似于在非开发机器上使用C#类库
关于regasm
-http://msdn.microsoft.com/en-us/library/tzat5yw6%28v=vs.110%29.aspx
希望这能有所帮助。
谢谢大家的建议。
如果您想注册.dll
,您需要将其放入程序集-C:Windowsassembly
中
为此,您需要使用gacutil.exe实用程序并执行
gacutil.exe /if Your_dll_name.dll