我每次构建、或发布、网站、Visual Studio的尝试,以检查出来的 网。config 文件,以便它可以增加众多的组件,是不需要的。

换句话说:

网。config 之前:

<configuration>
   <system.web>
      <compilation>
         <assemblies>
         </assemblies>
      </compilation>
   </system.web>
</configuration>

网。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>

没有这些组件的需要,最不存在目标上测试或者生产、服务器。

我保持删除他们的每一次我建立的,但它越来越 真的 恼人的真正的快。

现在我的解决方法是留下网。配置只读-所以Visual Studio不能添加组件。


更新

截图作为证据:

项目酒店的网页之前:

link text

网。Config之前:

alt text

项目酒店的网页之后:

alt text

网。config后:

alt text

更新两个

应该指出明确网站的工作没有这些无关的引用在增加。我的临时解决办法是保持网络。配置只读,并打 取消 每当Visual Studio抱怨说,它只读,因为它试图修改它。如果我可以停止Visual Studio试图修改它的第一个地方...


更新三

它看起来像是不可能的。有人可以感到自由得到正确的答案,"你不能阻止Visual Studio从增加程序集到你的网络。config."并且我将标记它。

唯一的理由我保存的问题是,希望有人知道的超级秘密选项,或注册的钥匙,或者项目或方案的设置,告诉Visual Studio要停止思考。


更新四个

我不接受所接受的答案,我unaccept它如果我能。我仍然希望灵丹妙药。但是现在我倾向于:

  • 回答:不能这样做(manu08)
  • 解决办法:过滤GAC组注册的关键(Nebakanezer)

我如何阻止Visual Studio添加组件到我的网页。config?

参考文献

有帮助吗?

解决方案

我用VS2005编辑。净1.1(VS2003).aspx和保存,则网。config会神不知鬼不觉有网。2.0组件的补充:

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

其他提示

也许"虚DotNet库"是引用这些组件本身。参考文献的引用大会需要正确地部署一个项目。否则,如何可以引用大会的工作?

注意,这有可能是你引用大会没有使用其自己的参考文献,虽然他们的存在。

编辑:你可以用伟大的工具"。净反光"来检查这一点。

我有这个问题与Visual Studio2005年(但是我很高兴报告说,解决方案适用于VS2008年,看到粗体文字下文)。有一个注册表的部分,VS检查之前添加组件。配置文件。

这里的关键在于:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\8.0\Projects\{E24C65DC-7377-472B-9ABA-BC803B73C61A}\FilteredGACReferences

所以,我们说你不想Visual Studio添加了微软。Visual studio.设计师。接口,会给你网。config。添加以下进入你的注册和你设置。

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\8.0\Projects\{E24C65DC-7377-472B-9ABA-BC803B73C61A}\FilteredGACReferences\Microsoft.VisualStudio.Designer.Interfaces

它的工作完全适用于我。是的,剩下的你的团队将不得不做一样的,但至少你不必手动删除该条目的每一个时间:)

要使它的工作VS2008-只是改变了8.0在注册表中的路径9.0

你转换"网站的"项目"网络应用程序"项目。

一个"网络的网站"不具有项目文件,因此它包含了所有会参考网。config。一个"网络项目"有一个项目文件,所有参考文献中存储的项目文件。

除参考。

  • 如果它是一个网络应用程序:你可以看到引用下 方案资源管理器.

  • 如果它是一个网站:右击该项目在解决资源管理器,然后选择 酒店网页.管理他们那里。

禾田

如果一个共用会引用它们,然后他们将被添加到调的项目。

由于头像图书馆,使这些其他引用的视觉工作室增加了这些参考的主要项目。否则,一个称为化身的图书馆可能失败,因为参照它所需要的缺失。

嗯,这可能看起来像一破解但是,鉴于你要求的另一个选择是将载的头像会动态使用的组件。负载或LoadFrom在运行时间。这将保留一个参考的主要项目,然后应防止的额外的参考线。config。这真的只是实际的,虽然如果你是只使用少数类自身的项目。我想提出的第三个项目,两个项目引用的那举行的接口,一个或更多的化身课程实施,以便为主要项目保持严格的打字时处理身的实例。我承认这可能是一个更多的工作,先前提交的答案。如果你有兴趣在这个方法谷歌搜索的创造插件。净

只要你使用一个网站,而不是一个网络应用程序,我不知道的任何方法来阻止Visual Studio从增加程序集到你的网络。config。这个同样的问题各种各样的事情发生我的公司的解决方案。

你不能阻止Visual Studio从增加程序集到你的网络。config。

对不起,你不能阻止Visual Studio从增加程序集到你的网络。config, 但一切都不会丢失。

我已经打这在过去;有人已经加入了一些参考文献(包括它)至低水平的数据访问会。该网站使用的低水平的数据访问会,因此它等加入该网络。配置文件。

解决的办法是移动他的代码到正确的组件,并删除不正确的参考。

如果你不能排序如何大会已经不需要的参考和你知道你不打电话代码,取决于不必要的引用。然后你可以(有这些都是不错的)

  • 写一个自定义中安装行动,自动清除这些不需要大会参考网。config
  • 写一个定义MSBUILD行动除去然后当时的建立
  • 使用不同手写的网页。配置文件应用程序时为安装。

它可以采取的年龄,以找到如何为什么Visual Studio是增加一个参考网。配置文件。你必须手工检查每一个组件,用于直接或间接通过网站。

我知道和理解为什么Microsoft发明了网站ASP.NET 2.0,但有时他们只是普通的 吸吮.如果它是实际为你把你网站的一个网络应用程序项目,并且像这样的问题会自行消失。

如果不是实际对你重新尝试的因素,因为很多代码,为可能成为一个单独的类图书馆项目。任何引用你可以搬出去的网站并入类库将削减下来 web.config 改变。

编辑: 为了澄清,在一个网站,aspnet编译器的汇编的一切(标记的代码隐藏的很多),因此,所有会引用必须进入 web.config.然而,在一个网络应用程序项目,C#或VB编译器编码后面的文件到一个单独的问题,然后将所引用的aspnet编译器时它编制标记。在这种情况下,集会是 只有中引用的代码隐藏的文件 将去到代码隐藏DLL和不触摸 web.config 在所有。只有集会, 直接引用中的标记 将去到 web.config.

我不相信你可以防止Visual Studio自动增加引用的组件所引用的其他人。

一个解决方案是创建一个网安装项目与一个自定义的行动,自动化 除这些不需要大会参考资料 web.config.

这些都是大会需要通过你的项目,在某些形状或庄园和援助汇编,ASP.NET 不在你的网页在运行时间。他们很可能被进口在通过或者通过代码使用中的项目或另一个图书馆,正在使用他们。

但根据本 文档.这些是组件中定义的全球网络。config其中可以找到 C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG:

<assemblies>
    <add assembly="mscorlib" />
    <add assembly="System, ..." />
    <add assembly="System.Configuration, ..." />
    <add assembly="System.Web, ..." />
    <add assembly="System.Data, ..." />
    <add assembly="System.Web.Services, ..." />
    <add assembly="System.Xml, ..." />
    <add assembly="System.Drawing, ..." />
    <add assembly="System.EnterpriseServices, ..." />
    <add assembly="System.Web.Mobile, ..." />
    <add assembly="*" />
</assemblies>

如果你看起来有一个 assembly="*" 参考增加。如果你读的 文档 关于这个命令中说:

或者,你可以指定 星号(*)通配符加 每组内私人 会缓的应用程序, 这是位于\bin 目录应用程序或在 。净框架安装的 目录 (%systemroot%\Microsoft。净\框架\版)。

这意味着,任何组件在您/bin directory或在。净框架安装目录将包含了。

这是什么告诉我关于你的问题是,这些组件,包括已经引用在一些方式项目。他们可能是来自 Avatar Dot Net Library 或者一些控制,在你的网页。 检查"参考"的文件夹在你Visual Studio项目上的头像图书馆,为这些引用你不想要的。因为那是建立过程中得到的这些图书馆。

所以换句话说,如果你不想让他们被包括洗刷你引用的项目的所有引用这些图书馆。

或者您可以使用一个MSBuild XML parser下降,部分的网络。config每次运行建立过程。我个人使用一个称为任务 XmlUpdate 修改某些部分我的网页。配置,以获得它的生产做好准备。如果你想做同样的,它是一部分 MSBuild社会的任务.

如果你是上运行的一个vista或服务器08机,可以使用appcmd命令行程序删除后重建,而不是手动删除。

http://technet.microsoft.com/en-us/library/cc772200(WS。10条)。aspx http://learn.iis.net/page.aspx/114/getting-started-with-appcmdexe/

看看 http://msdn.microsoft.com/en-us/library/ms178728.aspx

有它解释说,你看到酒店网页是不是所有隐含参考文献的存在还在机。配置文件和增加在编译时间。希望这会有所帮助。

我会开始通过检查"使用"statments在你的代码文件,以及任何引用你的.aspx.ascx文件。听起来好像你已经引用的这些(我知道有些是加入默认情况下从添加的新项目的模板。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top