2014-07-16 135 views
-2

我有一個VBA EXE這是在我的文檔轉換應用中使用,我們提供這種給多個客戶端,他們從來沒有抱怨過任何兼容性問題,但現在我們正在遷移的項目,以C#。所以下面是我的疑惑,我想先清除VBA項目移植到C#項目

  1. 從C#.net生成的EXE在客戶端系統上運行將需要在客戶端系統上安裝.NET框架。那麼,有沒有用了實現這一目標設立的.NET framework
  2. 如何VBA EXE運行在幾乎任何系統出框架內安裝的任何方式,
+0

從來沒有聽說過VBA被編譯成可執行.....你確定它的VBA? – Tim

+1

根據操作系統的不同,市面上大多數市面上的windows都會帶有.net 2.0或.net 3.5版本,所以如果你定位這些版本,你應該沒問題,除此之外你可以製作一個不依賴.net的安裝程序來安裝您的應用程序和它需要運行的目標框架。 – Prix

+0

NSIS有一些非常好的構建安裝程序以處理Prix正在討論的內容。 – AaronLS

回答

1
  • 做到這一點的唯一方法我知道的是通過靜態編譯使用單聲道或使用商業產品。我的理解是將.NET框架編譯爲本機代碼並將其包含在您的應用程序中(通常只包含您實際使用的部分)。這可能是非常有經驗的.NET開發人員的領域。即使作爲一名非常有經驗的C#開發人員,我從來沒有遇到過這樣做的情況,即執行此操作所涉及的潛在問題超過了簡單安裝.NET的成本。請參閱:Static compilation in the .NET world

  • VBA == Visual Basic的應用,因此只有在applicatiosn如Excel或Word的上下文中運行。您可能指的是VB,比如VB 6,它可以編譯爲本地exe文件,可以由操作系統直接執行,因爲它是機器代碼。在另一方面.NET編譯爲即大多機器無關,直到它的目標機器上執行,並因此在.NET框架必須在目標機器,使得上安裝基本上推遲編譯的機器代碼,最後一步一個語言它可以處理這最後一步。此外,還有很多的好處有外部化和共享。NET框架庫:更新他們並排側的DLL等。機器代碼見的瞭解每個應用程序沒有重複的部署,安全修補程序不依賴於應用程序作者:Assembly code vs Machine code vs Object code?

+0

嗨AaronLS這是我的錯誤是不VB6 VBA和感謝您的回覆它真的對我很有幫助 –