问题标签 [aspnet-merge]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
asp.net - ASP.NET Web 表单资源和本地化的棘手问题
我有以下非标准设置(VS2008,.NET 3.5 SP1):
有一个名为 MainSite 的主 Web 项目,并且有几个具有不同名称的“插件”Web 项目。
在构建这些插件时,我有一个自定义构建步骤,它调用aspnet_compiler.exe
和aspnet_merge.exe
. 这会产生两个 .DLL 文件 - plugin_name .dll 和plugin_name _deploy.dll。第一个包含代码隐藏类,第二个包含从 .ascx 文件生成的代码。
然后将这些插件 .DLL 复制到/MainSite/bin/Plugins/
文件夹中。在运行时(应用程序启动),MainSite 应用程序在此文件夹中查找并动态加载那里的所有 .DLL 文件。
我所有的表单都在插件中,在 .ascx 文件中。主应用程序只是一个框架,它根据需要加载这些 .ascx 用户控件。
现在需要本地化。理想情况下,我希望拥有以下内容:
- 在 Visual Studio 中制作资源时,每个表单都应该有一个单独的资源文件(.ascx 文件),以便人们更容易并行本地化表单。
- .ascx 文件中的 nice
meta:resourcekey
方法非常适合本地化控件; - .NET 中的自动资源语言/文化回退机制应该可用;
- 编译的结果应该是所有插件的文件都可以复制到
/MainSite/bin/Plugins/
文件夹中。如果每种语言/文化都有一个 .DLL 文件,并且它们必须放在一些特定的子文件夹中 - 只要来自不同插件的 .DLL 没有冲突的名称,那就没问题了。
关于如何实现这一目标的任何想法?
asp.net - 您可以预编译和合并 ASP.NET 网站的一部分,然后继续开发吗?
网站的很大一部分是预编译和合并的,因为它几乎永远不会改变。在对原始版本进行更新的情况下,可以替换预编译位。我想继续开发新页面,但是当我浏览到新页面时,出现以下错误:
文件“/Website/Test/Default.aspx”尚未预编译,无法请求。
有没有办法解决?
编辑:
如果我删除 precompileApp.config 文件,我会在浏览标记文件时获得它们的内容:
这是预编译工具生成的标记文件,请勿删除!
asp.net - .NET 程序集格式有大小限制吗?
我们遇到了一个我以前从未遇到过的有趣问题。我们在 Visual Studio 2008 SP1 中有一个大规模生产的 ASP.NET 3.5 SP1 Web 应用程序项目,它使用网站部署项目进行编译和部署。去年一切正常,直到昨天签入后,该应用程序开始严重失败,并出现BadImageFormatException
.
有问题的签到并没有改变任何特别的东西,错误来自应用程序的甚至没有改变的区域。使用 Reflector 我们检查了有问题的方法,发现代码中有垃圾字符串(.NET Reflector 幽默地将其解释为汉字)。我们一直在多台机器上复制此内容,因此它似乎与硬件无关。
进一步检查表明,在部署期间用作aspnet_merge.exe输入的程序集中不存在这些垃圾字符串。
aspnet_merge.exe / Web 部署项目输出程序集属性:
- 将所有输出合并到一个程序集中
- 将每个单独的文件夹输出合并到自己的程序集中
- 将所有页面和控制输出合并到一个程序集中
- 为每个页面创建单独的程序集并控制输出
在 Web 部署项目属性中,如果我们将合并选项设置为第一个选项(“将所有输出合并到单个程序集”),我们会遇到问题,但所有其他选项都可以正常工作!
我的问题:有人知道为什么会这样吗?aspnet_merge.exe 的功能是否有大小限制(生成的合并 DLL 约为 19.3 MB)?合并 WAP 的输出是否还有其他已知问题?
如果任何汇编格式/aspnet_merge.exe 专家知道这样的限制,我会很高兴。在我看来,就像一个 25MB 的程序集,虽然很大,但并不离谱。
asp.net - ASP.Net Web 部署项目合并错误
我收到此错误:
在程序集“App_Web_ssek9ymk”中发现重复类型“powerstats_Admin_control”。aspnet_merge 1 1 Release3
我知道它对我的系统来说是独一无二的,但我该如何修复它?这是什么意思?
asp.net - ASP.NET MVC 应用程序中的“错误二进制签名”
我在这里遇到了同样的问题:ASP.NET MVC 应用程序中的“Bad binary signature”
ASP.Net MVC 站点在本地计算机上运行良好,但是当使用 aspnet_compiler、aspnet_merge 和 msdeploy 的组合进行部署时,加载任何页面都会失败并出现以下错误:
System.BadImageFormatException 错误的二进制签名。(来自 HRESULT 的异常:0x80131192)
链接问题中接受的解决方案表明该问题是由使用错误版本的 aspnet_merge 引起的,并且我已验证从部署中删除 aspnet_merge 步骤可以解决该问题。
我的问题是使用正确的 aspnet_merge 版本似乎无法解决问题。
Web 应用程序的目标是 .Net 4.0 64 位。使用的 aspnet_merge 路径是:“C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin\NETFX 4.0 Tools\aspnet_merge.exe”
[编辑]
本地开发是:
- VS2010 SP1
- 卡西尼
- x64
- 已安装 VS11 Beta 和 .Net 4.5
构建路径是:
- C:\Windows\Microsoft.NET\Framework\v4.0.30319\
- C:\Program 文件 (x86)\IIS\Microsoft Web 部署 V2\
asp.net - aspnet_merge 导致 dll not found 错误
我使用 aspnet_compiler 来预编译一个 asp.net 网站。然后,我运行 aspnet_merge 将预编译的程序集合并为一个。
不幸的是,aspnet_merge 在其合并过程中不包括其中一个程序集。因此,该组件保持不变。更不幸的是,这个程序集引用了一个确实被合并(现在已被删除)的程序集,并且这个引用没有被 aspnet_merge 更新。因此,当使用此 dll 时,我得到一个FileNotFoundException“无法加载文件或程序集” 。
到目前为止,我发现在预编译步骤之后,大多数程序集都被命名为
而有问题的 dll 的名称如下:
我想这就是 aspnet_merge 忽略它的原因。我通过使用 -log 选项确认 aspnet_merge 会忽略它,它会生成一个输入程序集列表。
我这样调用 aspnet_compiler 和 aspnet_merge :
我目前正在查看反编译的 aspnet_merge 代码,试图弄清楚它在决定合并哪些 dll 时采用什么逻辑,但也许有人以前见过这个问题或有建议?
我正在寻找一种方法让 aspnet_compiler 生成 aspnet_merge 理解的 dll,或者让 aspnet_merge 更新所有引用它删除的任何 app_web* dll 的程序集。谢谢!
更新:aspnet_merge 忽略 App_Web_nameofusercontrol.ascx.xxxxxxxx.dll,因为 aspnet_compiler 不会生成相应的 .compiled 文件。此外,用户控件似乎也被编译到 App_Web_xxxxxxxx.dll 程序集中之一。但是,我不知道为什么同一个用户控件被编译成两个不同的程序集。也许是一个奇怪的循环引用问题?
asp.net - 在程序集中发现重复类型“主”
以前,我们在 .net 2.0 上,并且 aspnet_merge 构建工作正常。现在升级到 .net 4.0 后,当我们尝试使用 aspnet_merge 构建代码时,它会引发以下错误
在程序集中发现重复类型“主”。
这是一个母版页,我已经彻底检查了重复性,但没有..
请建议..
visual-studio-2010 - 将 VS 2008 项目转换为 VS 2010 后出现 aspnet_merge 错误
我收到一个错误
合并程序集时。
我之前所做的,只需在我的 VS 2010 中打开 VS 2008 解决方案而不更改 .Net Framework(当 VS 2010 提示我将 .Net Framework 更改为 4.0 时选择否)并**missing compiler required member System.Runtime. CompilerServices. ExtensionAttribute..ctor**
通过将 NewtonSoft dll 版本从 2.0 更改为 3.5 来解决此错误。
现在成功发布我的项目后,我必须合并 dll,但我遇到了上述错误。我已经检查了不同版本的 aspnet_merge (3.5/4.0),但得到了同样的错误。
请让我知道为此需要做些什么。
c# - ASP_Merge 生成的 dll 默认命名空间
我正在尝试将我所有的 aspx 和 ascx 与 ASP_Merge.exe 合并到一个 dll 中......它正在工作,我确实创建了 dll。我的问题是,这个合并创建了一个名为“ASP”的默认命名空间,里面是所有已编译的 ascx 和 aspx。
我需要的是将此“ASP”命名空间更改为“MyCustomNamespace”。有没有办法做到这一点?
提前致谢。
asp.net - Web 部署项目 - 指定要使用的 aspnet_merge 版本
我们的 WDP 存在一些问题,它正在部署一个 ASP.NET 4.0 站点。似乎一切正常,但是当它部署时,我们遇到 System.BadImageFormatException: Bad binary signature. (Exception from HRESULT: 0x80131192)
错误,当点击特定页面时,从其他阅读中出现的可能与默认情况下 WDP 使用的 aspnet_merge 版本有关。问题是,我们刚刚更换了所有机器,并且在旧机器上运行良好..
我已经找到了如何指定Microsoft.WebDeployments.Targets
文件中的哪个版本(在此处输入链接描述),但不相信它实际上正在使用它..
我从这里得到了路径:http: //msdn.microsoft.com/en-US/library/bb397866.aspx#findingthecorrectversion 有没有办法直接在 wdproj 文件中设置 aspnet_merge 的路径?
这一切都假设这是当然首先是问题..
谢谢
纳特