如何阻止Visual Studio向我的web.config添加程序集?

Ian*_*oyd 24 dependencies assemblies web-config visual-studio

每次构建或发布网站时,Visual Studio都会尝试检出web.config文件,以便它可以添加许多不需要的程序集.

换一种说法:

web.config之前:

<configuration>
   <system.web>
      <compilation>
         <assemblies>
         </assemblies>
      </compilation>
   </system.web>
</configuration>
Run Code Online (Sandbox Code Playgroud)

web.config之后:

<configuration>
   <system.web>
      <compilation>
         <assemblies>
             <add assembly="Microsoft.ReportViewer.Common... />
             <add assembly="Microsoft.ReportViewer.WinForms... />
             <add assembly="System.DirectoryServices... />
             <add assembly="System.Windows.Forms... />
             <add assembly="ADODB... />
             <add assembly="System.Management... />
             <add assembly="System.Data.OracleClient... />
             <add assembly="Microsoft.Build.Utilities... />
             <add assembly="Microsoft.ReportViewer.ProcessingObjectModel... />
             <add assembly="System.Design... />
             <add assembly="Microsoft.Build.Framework... />
         </assemblies>
      </compilation>
   </system.web>
</configuration>
Run Code Online (Sandbox Code Playgroud)

这些程序集都不是必需的,并且大多数程序集不存在于目标测试或生产服务器上.

我每次构建时都会一直删除它们,但它真的很快就会变得非常烦人.

现在我的解决方法是将web.config保持为只读 - 因此Visual Studio无法向其添加程序集.


更新

截图作为证据:

项目属性页面之前:

链接文字http://i26.tinypic.com/206c46c.jpg

Web.Config之前:

alt text http://i31.tinypic.com/30rr728.jpg

项目属性页面后:

替代文字http://i27.tinypic.com/25a3z2x.jpg

Web.config之后:

alt text http://i32.tinypic.com/2pq6w4w.jpg

更新二

应该明确指出,网站的工作没有添加这些无关的引用.我的临时解决方案是将web.config保持为只读,并在Visual Studio在尝试修改它时抱怨它是只读时点击取消.如果我可以阻止Visual Studio首先尝试修改它...


更新三

看起来这是不可能的.有人可以随意给出正确的答案," 你无法阻止Visual Studio向你的web.config添加程序集." 我会标记它.

我保持这个问题的唯一原因是,希望有人知道超级秘密选项,或注册表项,或项目或解决方案设置,告诉Visual Studio停止思考.


更新四

我不接受接受的答案,如果可以的话,我会接受它.我仍然希望有灵丹妙药.但是现在我倾向于:


如何阻止Visual Studio将程序集添加到我的web.config中?

参考

Jua*_*ero 6

也许"阿凡达DotNet库"本身就是引用这些组件.需要引用程序集的引用才能正确部署项目.否则,引用的程序集如何工作?

请注意,引用的程序集可能不使用自己的引用,尽管它们存在.

编辑:您可以使用伟大的工具".Net Reflector"来检查这一点.

  • 好的,我明白了.但是,从逻辑上讲,Visual Studio将添加这些程序集,因为它们很可能会被使用.如果Avatar Dot Net是您可以修改的项目,我建议您重新设计架构并将其划分为不同的程序集,并将所有未使用的引用放在您不需要在项目中引用的新程序集中. (5认同)

小智 4

我用VS2005编辑了一个.net 1.1(VS2003).aspx并保存,然后web.config就神秘地有了net。2.0 添加了程序集:

如果我使用VS2008或VS2010,就不会发生这种情况。所以我相信这是 VS2005 IDE 中的一个错误。