簡體   English   中英

我的程序包含一個DLL,但僅在我的計算機上運行。 我的程序在另一台計算機上運行,​​但是看不到硬件

[英]My program has included a DLL but only runs on my computer. My program runs on another computer but it doesn't see the hardware

(為便於閱讀,將段落分開編輯)

我有這個問題,確實需要幫助。 我已經在C#和Visual Studio中編寫了一個工具。 該工具用於通過現成的編程器從PCBA讀取I2C數據。 在為該現成的編程器安裝驅動程序之后,它通過USB與計算機通信,並通過I2C與PCBA(DUT)通信。

我編寫的工具具有一些基本的UI,可以讀取序列號並輸出結果。 我的問題是此工具在我編寫該工具的計算機上運行良好,但是當我在另一台計算機(客戶端計算機)上運行已發布的.exe文件時,它將運行程序的第一部分,要求輸入序列號,然后在嘗試時停止與程序員交談。 如果我在嘗試運行程序的計算機上安裝Visual Studio,並打開我的源代碼以通過“添加引用”添加DLL,它將起作用,但這不是正確的方法。

因此,我的問題是為什么在我嘗試運行工具的計算機上,需要再次添加DLL作為通過Visual Studio的引用。 難道沒有辦法只雙擊在每台計算機上運行嗎? 我不是一個真正的程序員。 我是硬件專家,所以我對Visual Studio / DLL /如何發行.exe知識有限。 請告訴我如何正確釋放具有DLL的此工具。 謝謝。 (我正在使用Visual Studio2013。)

我的程序的開頭在下面有這些用法。 如果我在目標計算機上打開Visual Studio,嘗試運行我的工具,則會看到使用帶紅色下划線的PP_COM_WRAPPER。 需要再次添加它作為參考,以使紅色下划線消失。 我確實先安裝了現成的程序員驅動程序。

using System;
using System.IO;
using System.Windows.Forms; //for UI
using System.Collections.Generic;
using System.Text;
using System.Threading;
using PP_COM_Wrapper;

謝謝。

實際上,這要歸功於Hans Passant,他在評論中暗示了這是軟件版本問題。 現成的程序員是我編寫該工具的計算機上的較舊版本。 客戶端計算機具有較新版本的編程器。 在將Programmer更新為與客戶端計算機相同的版本並在我的計算機上重新創建安裝文件以在客戶端計算機上運行之后,它可以工作! 感謝所有人的回復。

請使用安裝項目。 生成應用程序項目時,安裝程​​序項目將為您提供dll(參考文件)。 當您在客戶端計算機上安裝它時,它會自動安裝所需的dll文件。 所以在這里我想說要使用安裝項目,它可能會幫助您解決問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM