gpt4 book ai didi

c# - 找不到方法 : 'System.Type System.Runtime.InteropServices.Marshal.GetTypeFromCLSID(System.Guid)'

转载 作者:太空狗 更新时间:2023-10-29 18:14:56 29 4
gpt4 key购买 nike

我花了很多时间在我的开发箱上编写这个程序,在将它移到我们的生产箱后,我得到以下错误。仅供引用,我无法控制安装的内容和可以安装的内容,我怎样才能完成这项工作?在两台计算机上的两个框架下,我们都有 v1.0.3705、v1.1.4322、v2.0.50727、v3.0、v3.5、4.0.30319。另外,我用来创建应用程序的程序是 Visual Studio 2013 Pro。

谢谢

See the end of this message for details on invoking just-in-time (JIT) debugging instead of this dialog box.

***** Exception Text ******* System.MissingMethodException: Method not found: 'System.Type System.Runtime.InteropServices.Marshal.GetTypeFromCLSID(System.Guid)'. at C_Sharp_version.Form1.button4_Click(Object sender, EventArgs e)
at System.Windows.Forms.Control.OnClick(EventArgs e) at System.Windows.Forms.Button.OnClick(EventArgs e) at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent) at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks) at System.Windows.Forms.Control.WndProc(Message& m) at System.Windows.Forms.ButtonBase.WndProc(Message& m) at System.Windows.Forms.Button.WndProc(Message& m) at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

***** Loaded Assemblies ******* mscorlib Assembly Version: 4.0.0.0 Win32 Version: 4.0.30319.239 (RTMGDR.030319-2300) CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll ---------------------------------------- C Sharp version Assembly Version: 1.0.0.0 Win32 Version: 1.0.0.0 CodeBase: file:///gordonc$/Desktop/C%20Sharp%20version%20(2).exe ---------------------------------------- System.Windows.Forms Assembly Version: 4.0.0.0 Win32 Version: 4.0.30319.235 built by: RTMGDR CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll ---------------------------------------- System.Drawing Assembly Version: 4.0.0.0 Win32 Version: 4.0.30319.1 built by: RTMRel CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll ---------------------------------------- System Assembly Version: 4.0.0.0 Win32 Version: 4.0.30319.236 built by: RTMGDR CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
using Word = Microsoft.Office.Interop.Word;
using Microsoft.Office.Interop.Word;


namespace C_Sharp_version
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void FindAndReplace(Microsoft.Office.Interop.Word.Application doc, object findText, object replaceWithText)
{
//options
object matchCase = false;
object matchWholeWord = true;
object matchWildCards = false;
object matchSoundsLike = false;
object matchAllWordForms = false;
object forward = true;
object format = false;
object matchKashida = false;
object matchDiacritics = false;
object matchAlefHamza = false;
object matchControl = false;
object read_only = false;
object visible = true;
object replace = 2;
object wrap = 1;
//execute find and replace
doc.Selection.Find.Execute(ref findText, ref matchCase, ref matchWholeWord,
ref matchWildCards, ref matchSoundsLike, ref matchAllWordForms, ref forward, ref wrap, ref format, ref replaceWithText, ref replace,
ref matchKashida, ref matchDiacritics, ref matchAlefHamza, ref matchControl);
}

private void button1_Click(object sender, EventArgs e)
{
OpenFileDialog openInfDoc = new OpenFileDialog();

if (openInfDoc.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
string strInfDocLocation = openInfDoc.FileName;

MessageBox.Show(strInfDocLocation);
InfDocLocationtxt.Text = strInfDocLocation;
}
}

private void button2_Click(object sender, EventArgs e)
{
OpenFileDialog openNetdoc = new OpenFileDialog();
if (openNetdoc.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
string strNetDocLocation = openNetdoc.FileName;

MessageBox.Show(strNetDocLocation);
NetDocLocationtxt.Text = strNetDocLocation;
}
}

private void button3_Click(object sender, EventArgs e)
{
OpenFileDialog openChkdoc = new OpenFileDialog();
if (openChkdoc.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
string strChkDocLocation = openChkdoc.FileName;

MessageBox.Show(strChkDocLocation);
ChkDocLocationtxt.Text = strChkDocLocation;
}
}

private void button4_Click(object sender, EventArgs e)
{
object fileName = Path.Combine(System.Windows.Forms.Application.StartupPath, InfDocLocationtxt.Text);
Microsoft.Office.Interop.Word.Application wordApp = new Microsoft.Office.Interop.Word.Application { Visible = true };
Microsoft.Office.Interop.Word.Document aDoc = wordApp.Documents.Open(ref fileName, ReadOnly: false, Visible: true);
aDoc.Activate();
FindAndReplace(wordApp, "<ServerName>", textBox1.Text);
FindAndReplace(wordApp, "<Domain>", textBox2.Text);
FindAndReplace(wordApp, "<Ip>", textBox3.Text);
FindAndReplace(wordApp, "<Engineer>", textBox4.Text);
FindAndReplace(wordApp, "<Date>", textBox5.Text);
FindAndReplace(wordApp, "<Project>", textBox6.Text);
FindAndReplace(wordApp, "<Cluster>", textBox7.Text);
FindAndReplace(wordApp, "<DocNumber>", textBox8.Text);
FindAndReplace(wordApp, "<Author>", textBox9.Text);


}

private void button7_Click(object sender, EventArgs e)
{

}

private void button5_Click(object sender, EventArgs e)
{
object fileName = Path.Combine(System.Windows.Forms.Application.StartupPath, NetDocLocationtxt.Text);
Microsoft.Office.Interop.Word.Application wordApp = new Microsoft.Office.Interop.Word.Application { Visible = true };
Microsoft.Office.Interop.Word.Document aDoc = wordApp.Documents.Open(ref fileName, ReadOnly: false, Visible: true);
aDoc.Activate();
FindAndReplace(wordApp, "<ServerName>", textBox1.Text);
FindAndReplace(wordApp, "<Domain>", textBox2.Text);
FindAndReplace(wordApp, "<Ip>", textBox3.Text);
FindAndReplace(wordApp, "<Engineer>", textBox4.Text);
FindAndReplace(wordApp, "<Date>", textBox5.Text);
FindAndReplace(wordApp, "<Project>", textBox6.Text);
FindAndReplace(wordApp, "<Cluster>", textBox7.Text);
FindAndReplace(wordApp, "<DocNumber>", textBox8.Text);
FindAndReplace(wordApp, "<Author>", textBox9.Text);
}

private void button6_Click(object sender, EventArgs e)
{
object fileName = Path.Combine(System.Windows.Forms.Application.StartupPath, ChkDocLocationtxt.Text);
Microsoft.Office.Interop.Word.Application wordApp = new Microsoft.Office.Interop.Word.Application { Visible = true };
Microsoft.Office.Interop.Word.Document aDoc = wordApp.Documents.Open(ref fileName, ReadOnly: false, Visible: true);
aDoc.Activate();
FindAndReplace(wordApp, "<ServerName>", textBox1.Text);
FindAndReplace(wordApp, "<Domain>", textBox2.Text);
FindAndReplace(wordApp, "<Ip>", textBox3.Text);
FindAndReplace(wordApp, "<Engineer>", textBox4.Text);
FindAndReplace(wordApp, "<Date>", textBox5.Text);
FindAndReplace(wordApp, "<Project>", textBox6.Text);
FindAndReplace(wordApp, "<Cluster>", textBox7.Text);
FindAndReplace(wordApp, "<DocNumber>", textBox8.Text);
FindAndReplace(wordApp, "<Author>", textBox9.Text);
}


}
}

最佳答案

在我看来,这是一个 .NET Framework 兼容性 问题。

问题:您在本地计算机上使用更高版本的 .NET Framework 开发了您的应用程序,并在具有较低版本的 的远程 pc 上运行相同的应用程序。 NET 框架

注意:如果您将应用程序定位为在 .NET FrameworkHeigher 版本上运行,则它不会在较低版本上运行。

解决方案:您需要将其定位到远程 PC 上可用的 .NET Framework 较低版本才能在远程 PC 上运行。

第 1 步: 右键单击​​ project - 选择 properties

第 2 步:将 Target Framework.NET Framework x.x 更改为 .NET Framework x.y

注意:x.x 是更高的,x.y 是远程 pc 或任何更低版本上可用的较低版本。

关于c# - 找不到方法 : 'System.Type System.Runtime.InteropServices.Marshal.GetTypeFromCLSID(System.Guid)' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20440822/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com