2012-07-16 107 views
21

我使用ClickOnce出版了我的.NET應用程序,和我所有的用戶得到試圖打開的程序以下錯誤消息:無法安裝或運行應用程序:點擊一次

「無法安裝或運行應用程序。該應用程序需要首先在全局程序集緩存(GAC)中安裝Telerik.Windows.Data版本2012.1.215.40「。

在我的應用程序中實際使用的版本比在錯誤消息中提到的版本更新。我在我的機器上也沒有這個問題,我用它來開發應用程序。我不知道爲什麼它正在尋找舊版本的dll。我無法找到它在我的應用程序中引用的位置。

你能幫我解決嗎?

+1

您是否將程序集包含在您的應用程序中,還是應該從Telerik安裝應用程序安裝? ClickOnce應用程序無法在GAC中安裝dll。相反,他們必須由另一個安裝程序應用程序放在那裏。 – RLH 2012-07-16 14:51:44

+0

在「屬性」中的「發佈」選項卡的「應用程序文件」列表下,我將其顯示爲包含(自動)。事實上,我甚至不需要那個DLL。我把它從項目中排除了,但我也遇到了同樣的問題。難道你不知道爲什麼ClickOnce(或其創建的安裝包)想要這個過時的dll嗎? – 2012-07-16 15:14:29

+1

不,它不應該查找它,除非它在項目中的某處引用。對不起,我現在有點難過。 – RLH 2012-07-16 15:17:40

回答

32

,我發現這裏的解決方案:從WordPress的鏈接

http://ablogontech.wordpress.com/2009/01/02/unable-to-install-or-run-the-application-the-application-requires-that-the-assembly-be-installed-in-the-global-assembly-cache-gac-first/

摘錄:

我在編譯我的第一個C#生產 應用recevied此錯誤。我必須做到以下幾點在Visual Studio中的 項目:

  1. 在解決方案資源管理器中,展開參考節點,然後單擊錯誤中列出的組件。確保將屬性網格 中的複製本地設置爲「真」。
  2. 在項目的屬性中,發佈|應用程序的文件選項卡,確保發佈狀態在錯誤中列出的組件設置爲 到「包括」
+1

Thansk很多。你解決了我的生產問題。 – 2015-06-17 08:47:18

0

我有同樣的錯誤,當我在忘變化解決方案配置從「調試」,以「釋放」視覺工作室。

1

在我的情況下,導致此錯誤消息的問題是不正確的庫發佈配置。

當我把我的圖書館財產CopyLocal =假,然後在項目發佈應用程序文件設置發佈狀態包括,所有工程項目的重建和未來發布後的罰款。

因此,我們告訴編譯器的ClickOnce,而不是默認使用的應用程序發佈這個庫,並通過改變從先決條件發佈國家包括告訴ClickOnce的,而不是在GAC搜索這個庫。

0

您還應該檢查app.config文件中沒有錯誤的程序集綁定重定向。尋找看起來像一個節點:

<dependentAssembly> 
    <assemblyIdentity name="Telerik.Windows.Data" publicKeyToken="--SomePublicToken--" culture="neutral"/> 
    <bindingRedirect oldVersion="0.0.0.0-3.0.2.0" newVersion="3.0.2.0"/> 
    </dependentAssembly> 

,並確保oldnew是有道理的,或者簡單的範圍內,這個節點是有道理的。我的第一個嘗試就是簡單地刪除它並再次檢查。可能會發生一些NuGet軟件包與舊版本中的配置文件混淆,並且此新節點不再需要新版本(並且不會自動刪除)。

相關問題