我可以在Visual Studio 2012中做到这一点,但不能在2015年的MVC 6中做到这一点,图片相关:

这有可能吗?
发布于 2015-12-30 21:50:26
我觉得你的问题很有趣。DotNet应用程序通过互操作程序集访问COM,例如,可以针对tlbimp.exe生成互操作程序集。通常,你已经生成了很多这样的intreop。您可以在%SystemRoot%\assembly\GAC_MSIL目录中看到它。例如,我在计算机上安装了Office。下面我将展示如何创建使用COM接口启动Microsoft Word的小型ASP.NET 5项目。
我创建了简单的控制台应用程序,已经从"frameworks"中删除了"dnxcore50"部件。然后,我在解决方案资源管理器中选择“引用”,单击鼠标右键并选择“添加引用...”。现在我点击了“浏览...”按钮

导航到C:\Windows\assembly\GAC_MSIL\Microsoft.Office.Interop.Word\15.0.0.0__71e9bce111e9429c,选择Microsoft.Office.Interop.Word.dll并单击"Add“按钮。之后,我可以在解决方案资源管理器中看到以下视图:

值得一提的是,修改了global.json,并在"projects"部件中包含了"wrap"目录。在解决方案中创建了文件夹wrap和lib

文件夹lib\dnx451包含Microsoft.Office.Interop.Word.dll的副本。在wrap\Microsoft.Office.Interop.Word文件夹中创建了额外的project.json,内容如下:
{
"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;
}
}
}人们可以编译这样的应用程序并成功运行。
https://stackoverflow.com/questions/34520838
复制相似问题