오류 MSG WIA를 사용하여 스캔 할 수 없습니다 :윈도우 7 64
이파일이나 어셈블리를로드 할 수 없습니다 '버전 = 1.0.0.0, Interop.WIA을, 문화 = 중립, PublicKeyToken = null이'또는 하나의 의존성. 잘못된 형식의 프로그램을로드하려고했습니다.
솔루션
정상의 USB 스캐너 Windows XP에서 잘 작동, 그러나 잠시 위에서 발생 Windows에서 (ScanGear를 도구를 사용하여 발견 된) 네트워크 스캐너 (7) (64)로 스캔하기.C# 코드 :
private void startscan()
{
try
{
CommonDialogClass dailog = new CommonDialogClass();
ImageFile imgfile = (ImageFile)dailog.ShowAcquireImage(WiaDeviceType.ScannerDeviceType, WiaImageIntent.UnspecifiedIntent, WiaImageBias.MaximizeQuality,
FormatID.wiaFormatJPEG, true, true, false);
string firstname = DateTime.Now.Day.ToString() + DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + DateTime.Now.Second.ToString();
string name = scantxtfname.Text.Trim() + ".jpeg";
string filenamepath = ConfigurationManager.ConnectionStrings["scanfilepath"].ConnectionString.ToString() + firstname + name;
scanfile.Add(name);
firstint.Add(Convert.ToInt32(firstname));
SaveImageToPNGFile(imgfile, filenamepath);
FileStream stream = new FileStream(filenamepath, FileMode.Open, FileAccess.Read);
stream.Close();
DataTable dt = new DataTable();
dt.Columns.Add("Scaned Files", typeof(string));
datagridscanedfiles.DataSource = null;
for (int i = 0; i < scanfile.Count; i++)
{
DataRow r = dt.NewRow();
r[0] = scanfile[i].ToString();
dt.Rows.Add(r);
}
datagridscanedfiles.DataSource = dt;
datagridscanedfiles.Visible = true;
int ln = scanfile.Count;
pictureBox1.ImageLocation = filenamepath;
}
catch (Exception d)
{
MessageBox.Show(d.Message);
}
}
private static void SaveImageToPNGFile(ImageFile image, string fileName)
{
try
{
ImageProcess imgProcess = new ImageProcess();
object convertFilter = "Convert";
string convertFilterID = imgProcess.FilterInfos.get_Item(ref convertFilter).FilterID;
imgProcess.Filters.Add(convertFilterID, 0);
SetWIAProperty(imgProcess.Filters[imgProcess.Filters.Count].Properties, "FormatID", WIA.FormatID.wiaFormatJPEG);
image = imgProcess.Apply(image);
image.SaveFile(fileName);
}
catch (Exception er)
{
MessageBox.Show(er.Message);
}
}
private static void SetWIAProperty(IProperties properties, object propName, object propValue)
{
Property prop = properties.get_Item(ref propName);
prop.set_Value(ref propValue);
}
내가 문제보다 해결하는 방법을 제시하세요?
x86 응용 프로그램을 실행할 때 잘 실행됩니다 .... 감사합니다 ... –