我已經找到了解決方案,感謝MSDN,
默認情況下,當您重建一個部件時,它會被分配一個新的版本號。這是因爲Visual Studio .NET爲新項目設置了AssemblyVersion屬性爲「1.0。*」。因此,每次重新構建程序集時,都會爲服務組件生成新的類標識符(CLSID)。
注意此行爲在C#和Visual Basic .NET項目之間略有不同。對於C#項目,程序集版本在每次重建時都會增加。對於Visual Basic .NET項目,程序集版本在加載到Visual Studio .NET中後首次重建時會增加。隨後在Visual Studio .NET的同一實例中重建不會導致程序集版本增加。
這並不代表問題,因爲程序集版本僅用於沒有強名稱的程序集中的信息。對於強壯的指定程序集,應使用手動維護的靜態版本號。本章以及其他版本控制問題將在第5章「構建過程」中的控制組件版本中進一步討論。
爲了控制該提供服務的CLSID組件與COM +目錄結束,並避免每一個顯影劑重建服務組件時出現的多個版本,可使用下列方法之一:
1.明確通過使用下列GUID屬性控制CLSID:「1.0 *」
[Guid("2136360E-FEBC-475a-95B4-3DDDD586E52A")]
public interface IFoo
{}
[TransactionAttribute(TransactionOption.Required),
Guid("57F01F20-9C0C-4e63-9588-720D5D537E66")]
public class Foo: ServicedComponent, IFoo
{}
2.維護服務組件的裝配靜態集版本號,並且不使用Visual Studio .NET默認版本編號方案。有關程序集版本控制的更多信息,請參閱第5章「構建過程」中的控制程序集版本。
我用第一種方法。工作過一種享受。
http://msdn.microsoft.com/en-us/library/ee817675.aspx
你指定你的vb.net代碼上您的課'Guid'屬性? – Medinoc
是的,它有一個特定的GUID集。沒有它會發生什麼? @Medinoc –
如果確定了,我不明白它會如何改變。我知道一些GUID將隨安裝程序包中的版本發生變化(儘管我從未使用過WiX,我使用過VS2005部署項目,並且產品代碼隨版本發生了變化)。我不明白如果您設置了CoClass的CLSID如何自動更改它在石頭上。 * ...也許你的意思是在你的問題中的另一種GUID,而不是一個實際的CLSID?* – Medinoc