在windows服务器上注册用C#编写的Dll-(安装C#类库)



我为我正在处理的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

最新更新