繁体   English   中英

在Windows服务器计算机上使用C#编写的Dll - (安装C#类库)

[英]Regisering a Dll written in C# on a windows server machine - (Install a C# Class Library)

我已经为我正在处理的VBA项目编写了一个保存并打开对话框添加 - 继续链接VBA:默认情况下获取Excel FileDialogOpen指向“我的电脑” (感谢帮助@mehow)。

现在这个添加(类库,因为它实际上被调用)与我的计算机上的vba项目一起工作,我一直在开发它。 但是现在要在服务器上使用此添加(类库),我无法成功注册插件,以便VBA项目可以看到它。

我在Windows 8机器上用VS 2013 Express for Desktop编写了对话框加入C#,我们现在正试图在Windows服务器2008机器上测试它,VBA项目将在当天结束时运行。

我已尝试在服务器上使用regsvr32命令以及在VS 2013中查找部署选项,但似乎都没有工作! 我也尝试过寻找解决方案但到目前为止还没有运气。

如果有人有任何想法如何做到这一点,将不胜感激。 对不起,如果我没有使用正确的术语。 添加ins等,但我希望你明白我的意思。

非常感谢

特里斯坦。

在尝试各种不同的方法后,我似乎终于得到了这个工作,所以我不确定这是你需要做的所有事情,但希望它可以帮助将来的某个人。

首先,Visual Studio 2013 Express不包含“安装项目”,因此您无法在其中创建部署缓冲区以用于在其他计算机上安装项目,因此您必须手动执行此操作。

那么你也需要在你的目标计算机上使用相同的.Net框架,就像你以前编写你的项目一样 - 如果你考虑它而不是工作检查,这是没有道理的。

所以我从我的开发PC上的Visual Studio项目bin\\Debug文件夹中复制.dll.pdb.tlb文件,并将它们放入服务器C:驱动器上的文件夹中。

然后以管理员身份打开命令提示符(右键单击开始菜单中的图标,然后单击“以管理员身份运行”。然后使用cd C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319在命令提示符下导航到目标PC的.Net文件夹你会发现cd C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319文件夹“

一旦我运行了regasm /codebase "C:\\MyClassLibraryFolder\\MyClassLibrary.dll"regasm /tlb /codebase "C:\\MyClassLibraryFolder\\MyClassLibrary.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:\\Windows\\assembly

为此,您需要使用gacutil.exe实用程序并执行

gacutil.exe /if Your_dll_name.dll

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM