添加引用时如何更改“特定版本”默认值?

时间:2010-06-15 13:05:20

标签: c# .net visual-studio-2010 csproj

当我添加对项目的引用时,我通常想使用特定版本= FALSE。这是因为我们的自动构建将设置版本号。我看到默认行为是TRUE。

有没有办法改变这个?指望手动更改该值是容易出错的(我最终打破了构建)。

3 个答案:

答案 0 :(得分:2)

创建AddIn项目,然后尝试:

Imports Extensibility
Imports EnvDTE
Imports EnvDTE80
Imports VSLangProj
Imports VSLangProj80

Public Class Connect

    Implements IDTExtensibility2

    Private _app As DTE2
    Private WithEvents _RefEvents As ReferencesEvents

    '''<summary>Implements the constructor for the Add-in object. Place your initialization code within this method.</summary>
    Public Sub New()
    End Sub

    '''<summary>Implements the OnConnection method of the IDTExtensibility2 interface. Receives notification that the Add-in is being loaded.</summary>
    '''<param name='application'>Root object of the host application.</param>
    '''<param name='connectMode'>Describes how the Add-in is being loaded.</param>
    '''<param name='addInInst'>Object representing this Add-in.</param>
    '''<remarks></remarks>
    Public Sub OnConnection(ByVal application As Object, ByVal connectMode As ext_ConnectMode, ByVal addInInst As Object, ByRef custom As Array) Implements IDTExtensibility2.OnConnection
        _app = CType(application, DTE2)
        _RefEvents = CType(_app.Events.GetObject("VBReferencesEvents"), ReferencesEvents)
    End Sub

    '''<summary>Implements the OnDisconnection method of the IDTExtensibility2 interface. Receives notification that the Add-in is being unloaded.</summary>
    '''<param name='disconnectMode'>Describes how the Add-in is being unloaded.</param>
    '''<param name='custom'>Array of parameters that are host application specific.</param>
    '''<remarks></remarks>
    Public Sub OnDisconnection(ByVal disconnectMode As ext_DisconnectMode, ByRef custom As Array) Implements IDTExtensibility2.OnDisconnection
    End Sub

    '''<summary>Implements the OnAddInsUpdate method of the IDTExtensibility2 interface. Receives notification that the collection of Add-ins has changed.</summary>
    '''<param name='custom'>Array of parameters that are host application specific.</param>
    '''<remarks></remarks>
    Public Sub OnAddInsUpdate(ByRef custom As Array) Implements IDTExtensibility2.OnAddInsUpdate
    End Sub

    '''<summary>Implements the OnStartupComplete method of the IDTExtensibility2 interface. Receives notification that the host application has completed loading.</summary>
    '''<param name='custom'>Array of parameters that are host application specific.</param>
    '''<remarks></remarks>
    Public Sub OnStartupComplete(ByRef custom As Array) Implements IDTExtensibility2.OnStartupComplete
    End Sub

    '''<summary>Implements the OnBeginShutdown method of the IDTExtensibility2 interface. Receives notification that the host application is being unloaded.</summary>
    '''<param name='custom'>Array of parameters that are host application specific.</param>
    '''<remarks></remarks>
    Public Sub OnBeginShutdown(ByRef custom As Array) Implements IDTExtensibility2.OnBeginShutdown
    End Sub

    Private Sub _RefEvents_ReferenceAdded(ByVal pReference As Reference) Handles _RefEvents.ReferenceAdded
        If pReference.Version <> "0.0.0.0" Then
            CType(pReference, Reference3).SpecificVersion = True
        End If
    End Sub
End Class

答案 1 :(得分:0)

没有办法改变默认值。如果您正在使用TFS,则可能会应用签入规则,但我不确定是否可以将签入规则应用于.csproj或.sln文件。

答案 2 :(得分:0)

我想说你不应该为每个版本更改程序集版本。您应该为此目的使用文件版本。

Suzanne Cooke有一篇很好的博客文章,详细解释了它,但总结的是,程序集的文件版本不必与程序集版本相同,对于构建,您需要整个文件版本,而不是装配版本。

Suzanne Cook's blog post