2012-01-03 114 views
0

我花了一個星期的時間在C#中學習和編寫一個小型的個人應用程序。我用dotnetbar和一切運行良好,當我在我的機器上調試,但我想編譯一切成一個可執行文件,並使一切工作...Visual Studio C# - 編譯應用程序?

有人告訴我,在Visual Studio中編譯的方式是建立解決方案,它將文件放入bin/release或bin/debug中。我在發佈模式下構建瞭解決方案並運行應用程序,一切正常,但是當我將它傳輸到另一臺計算機進行測試時,沒有打開任何程序,大約30秒後出現錯誤。

我認爲這是dotnetbar,所以我用一個按鈕做了一個新項目,在另一臺計算機上測試了它,並且它工作正常。我從dotnetbar添加了一個ButtonX,測試了它,但沒有打開,甚至沒有出現錯誤信息。

這是怎麼發生的?該程序是否需要帶有dotnetbar dll,或者我可以用該應用程序以某種方式編譯它們?

+0

您確定您測試的其他計算機上是否安裝了適當版本的.NET Framework?沒有辦法創建不需要安裝.NET Framework的.NET應用程序。 – 2012-01-03 03:33:30

+0

是的,我試着用dotnetbar dll測試它,它的工作,所以唯一的問題是,我需要包括我想要在應用程序內的DLL。 – mowwwalker 2012-01-03 03:40:17

回答

1

查看DotNetBar的website的這些信息。您需要複製文件或在Visual Studio中使用Setup Project

從上述網站:

DotNetBar爲WPF與你的應用程序是爲包括在同一個文件夾中的 DotNetBar組件爲您的應用程序的可執行 一樣簡單。您只需分發在項目中引用 的裝配。

以下組件可包括:

DevComponents.WpfRibbon.dll

DevComponents.WpfEditors.dll

DevComponents.WpfDock.dll

DevComponents.WpfSchedule.dll


編輯:

根據您的意見,你可以嘗試做一個Self Extracting Exe或使用類似ILMerge。我沒有親自嘗試過。

+0

有人曾經提到它,我不太想知道如何使用它,但我最終得到它,它的工作,所以謝謝:D – mowwwalker 2012-01-03 06:19:20

+0

@Walkerneo沒有問題,很高興成爲幫助 – 2012-01-03 06:24:20

2

是的,所有的依賴關係都需要包含......你不能將它們鏈接到你的程序集中。我假設這個dotnetbar(從來沒有用過)可能將自己安裝到您的GAC中。如果相應的.dll沒有複製到您的發佈文件夾中,則需要將程序集引用中的「複製本地」設置更改爲true。這會將其複製到輸出文件夾,這使得它在部署時可用。

+0

雖然可以這樣做。我有我使用dotnetbar下載的應用程序,但只有一個可執行文件。 – mowwwalker 2012-01-03 03:03:35

+1

您可能已經安裝了它們,或者您下載的應用程序使用了以您的名義安裝它們的引導安裝程序。無論哪種情況,.NET都不支持鏈接,並且這些依賴關係必須以某種方式存在 – 2012-01-03 03:05:15

+0

這兩個都不是......我被告知它使用了某種依賴編譯器,無需外部文件。 – mowwwalker 2012-01-03 03:10:26

0

它看起來像可能有一些缺少的.dll文件應該與發佈在同一文件夾中。通常,您需要發佈文件夾中的所有文件才能正常運行應用程序(因爲您可能已經編寫的某些文件可能剛剛創建爲DLL並在運行時鏈接)。

相關問題