换句话说: web.config 原来的样子:
<configuration>
<system.web>
<compilation>
<assemblies>
</assemblies>
</compilation>
</system.web>
</configuration>
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>
这些程序集都不是必需的,大多数在目标测试或生产服务器上不存在。
每次构建时我都会将它们删除,但这真的变得非常烦人。
现在我的解决方法是将web.config设置为只读,这样Visual Studio就无法向其中添加程序集。
更新
以下是证明截图:
项目属性页面之前:
Web.Config之前:
项目属性页面之后:修改后的 Web.config:
更新二
需要明确指出的是,该网站可以在不添加这些无关引用的情况下正常运行。我的临时解决方案是将web.config设置为只读,并且每当Visual Studio尝试修改它时,点击取消。如果我能够阻止Visual Studio首先尝试修改它...
更新三
看起来不可能。如果有人知道正确答案,可以随意回答,"你无法阻止Visual Studio向你的web.config添加程序集。" 我会标记它。
我保留这个问题的唯一原因是希望有人知道超级秘密选项、注册表键或项目或解决方案设置,告诉Visual Studio停止思考。
更新四
我没有接受已接受的答案,如果可以的话,我会取消接受。我仍然希望找到解决办法。但现在我倾向于以下方案:
- 答案:无法完成 (manu08)
- 解决方法:过滤 GAC 程序集注册表键 (Nebakanezer)
我该如何停止Visual Studio向我的web.config文件中添加程序集?