Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用COM互操作将多个C#解决方案项目中的对象传递给Word VBA_C#_Vba_Ms Word_Vsto - Fatal编程技术网

使用COM互操作将多个C#解决方案项目中的对象传递给Word VBA

使用COM互操作将多个C#解决方案项目中的对象传递给Word VBA,c#,vba,ms-word,vsto,C#,Vba,Ms Word,Vsto,我需要在Word VBA中访问我的c#解决方案的两个项目中的对象。下面是我的项目结构。每个项目都有自己的名称空间 除了上述项目之外,还有一个项目叫做“视图”,它是使用VSTO创建的“查看”项目使用所有其他DLL。 我需要访问“实体”和“服务器”项目中的对象,并且我能够使用和为“实体”项目创建.tlb文件 我当前正在成功使用Entities.tlb文件。 为了为服务器项目创建.tlb文件,我尝试了相同的方法。即使解决方案构建成功,也没有为服务器项目生成.tlb文件 为什么第二个.tlb文件没有生

我需要在Word VBA中访问我的c#解决方案的两个项目中的对象。下面是我的项目结构。每个项目都有自己的名称空间

除了上述项目之外,还有一个项目叫做“视图”,它是使用VSTO创建的“查看”项目使用所有其他
DLL

我需要访问“实体”和“服务器”项目中的对象,并且我能够使用和为“实体”项目创建
.tlb
文件

我当前正在成功使用
Entities.tlb
文件。 为了为服务器项目创建
.tlb
文件,我尝试了相同的方法。即使解决方案构建成功,也没有为服务器项目生成
.tlb
文件

为什么第二个
.tlb
文件没有生成?我们是否只能为c#解决方案中的一个项目创建
.tlb
文件


创建包含多个项目的C#解决方案对象的最佳方法是什么,以便在Word VBA中使用?

是否已在VBA对象浏览器中检查.tlb文件中提供的对象。如果上图中的所有对象都位于同一个解决方案中,则它们很可能在VBA对象浏览器的.tlb类中可见。@刚刚选中的freeflow,只有在“实体”项目下实现的对象在对象浏览器中可见。确定。我在这里的知识已到了极限。您的观察表明,实体位于其自己的解决方案或名称空间中。我唯一能抓住的另一根稻草是,其他对象尚未声明为公共对象。@freeflow是的,每个项目都有自己的名称空间,我现在修改了问题以包含此信息。我还找不到方法。我目前正在使用
RegAsm.exe
(位于位置“C:\Windows\Microsoft.NET\Framework64\v4.0.30319”)使用命令
RegAsm.exe(dll位置)/tlb/codebase
创建tlb文件。将使用
RegAsm.exe
生成的.tlb文件与最终装运产品绑定,而不是使用Visual Studio本身生成的tlb文件,是否存在任何风险?