【发布时间】:2015-12-29 23:39:05
【问题描述】:
【问题讨论】:
标签: visual-studio-2015 asp.net-core asp.net-core-mvc
【问题讨论】:
标签: visual-studio-2015 asp.net-core asp.net-core-mvc
我觉得你的问题很有趣。 DotNet 应用程序通过互操作程序集访问 COM,例如可以针对 tlbimp.exe 生成该程序集。通常,您已经生成了很多这样的内部操作。你可以在%SystemRoot%\assembly\GAC_MSIL 目录中看到。例如,我的电脑上安装了 Office。下面我将展示如何创建小型 ASP.NET 5 项目,该项目使用 COM 接口启动 Microsoft Word。
我创建了简单的控制台应用程序,已从"frameworks" 中删除了"dnxcore50" 部分。然后我在解决方案资源管理器中选择“引用”,单击鼠标右键并选择“添加引用...”。现在我点击了“浏览...”按钮
导航到C:\Windows\assembly\GAC_MSIL\Microsoft.Office.Interop.Word\15.0.0.0__71e9bce111e9429c,选择Microsoft.Office.Interop.Word.dll 并单击“添加”按钮。之后,我可以在解决方案资源管理器中看到以下视图:
值得一提的是,global.json 已被修改,"wrap" 目录包含在"projects" 部分中。文件夹wrap 和lib 是在解决方案中创建的
文件夹lib\dnx451 包含Microsoft.Office.Interop.Word.dll 的副本。 附加 project.json 在wrap\Microsoft.Office.Interop.Word 文件夹中创建,内容如下:
{
"version": "1.0.0-*",
"frameworks": {
"dnx451": {
"bin": {
"assembly": "../../lib/dnx451/Microsoft.Office.Interop.Word.dll"
}
}
}
}
现在主要的project.json 包含
{
"frameworks": {
"dnx451": {
"dependencies": {
"Microsoft.Office.Interop.Word": "1.0.0-*"
}
}
}
}
我创建了启动 Microsoft Word 并使其可见的简单程序:
namespace OldConsoleAppCom
{
public class Program
{
public static void Main(string[] args)
{
var wordApp = new Microsoft.Office.Interop.Word.Application();
wordApp.Visible = true;
}
}
}
可以编译这样的应用程序并成功运行。
【讨论】: