2009-01-16 126 views
20

我目前正在爲我們公司的其他應用程序的服務器控件工作,以與WCF服務進行接口。每次我更改代碼並重新編譯控件時,我都會將AssembleInfoInfo.cs中的AssemblyVerison和AssemblyFileVersion類增加1。例如,我的最新版本從1.0.07.0到1.0.08.0。「您是否缺少程序集參考?」編譯錯誤 - Visual Studio

當消費應用的bin目錄複製最新的文件更新文件並嘗試編譯,他們會收到以下錯誤:

The type or namespace name 'MyControl' does not exist in the namespace 'MyNamespace' (are you missing an assembly reference?)

爲了解決這個錯誤,他們必須刪除當前參考並重新添加參考。

有什麼辦法可以更新服務器控件而不必刪除並重新添加引用?

更新:
我沒有強有力的命名服務器控件。
@JPunyon - 你的意思是消費應用程序將服務器控制項目添加到他們的解決方案?

+0

這是一篇關於修正裝配問題的好文章 - http://www.codeandyou.com/2017/08/missing-assembly-reference-in-visual.html – virender 2017-08-18 09:45:33

回答

12

右鍵單擊解決方案資源管理器屬性中的程序集引用,禁用「特定版本」選項。

2

你強大的命名你的程序集?在這種情況下,自動增加內部版本號並不是一個好主意,因爲對於每個新的內部版本號,您都必須更新所有引用。

1

我碰上的是我指出了正確的方向的答案,但...

對於那些使用Visual C++誰是:

如果您需要關閉自動遞增的版本,你可以在「AssemblyInfo.cpp」文件中更改此值(所有CLR項目都有一個)。給它一個沒有星號的真實版本號,它會以你想要的方式工作。

只是不要忘記在你的程序集上實現你自己的版本控制!

25

就我而言,這是一個使用Target Framework定義的項目:「.NET Framework 4.0 Client Profile」,它試圖引用使用Target Framework定義的dll項目:「.NET Framework 4.0」。

當我更改項目設置以使用Target Framework:「.NET Framework 4.0」時,一切都很好地構建。

右鍵單擊項目 - >屬性 - >應用程序 - >目標框架

0

就我而言,我不得不地方設置更改複製到真(右鍵單擊裝配在Solution Explorer中,選擇屬性,找到並更改複製本地屬性的值)。一旦這個設置被改變,我的WCF服務的發佈將文件複製到服務器,錯誤消失了。

相關問題