问题标签 [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.

0 投票
1 回答
1689 浏览

asp.net - TFS 进程无法访问该文件,因为它正被另一个进程使用

我使用 TFS 创建了一个自动构建过程,它构建了一个 Web 应用程序。

作为此过程的一部分,批处理文件用于调用 ASP Merge 以将我的网页合并到一个 dll 中。我正在使用 TFS 活动 Invoke Process 来执行此操作。

以下是 TFS 构建窗口中输出的屏幕截图: TFS 构建输出

有谁知道如何解决这个问题?

0 投票
1 回答
621 浏览

c# - 当您预编译但不合并时,页面和用户控件在哪里结束?

发布网站时,您有几个预编译选项。对于此示例,假设它是一个 .ascx 用户控件(尽管页面行为相似)并且选中“允许预编译的站点可更新”。这些是您拥有的一些选项:

  1. 不要预编译:用户控件内容保留在 .ascx 文件中,并根据需要编译到临时 ASP.NET 文件夹中。
  2. 预编译,不合并:主 DLL (projectName.dll) 略有不同,.ascx 消失,在任何地方都找不到 ascx 内容??
  3. 预编译,合并到单个程序集:主DLL略有不同,.ascx内容在新的单个程序集中,出现.compiled文件
  4. 预编译、合并页面和控件到单个程序集:几乎与#3 相同,单个程序集稍小(可能不包括顶级程序集)包含一些代码#3)与#3 相同但现在我们也有.编译文件。

方法:我使用 WinMerge 比较了 #1 和 #2 之间的发布输出,然后是 #2 和 #3 等等。我还从一个 ascx 中挑选了一个独特的词,并使用 Agent Ransack 搜索了发布输出(找到所有内容,而不仅仅是索引内容)。

问题:对于#2,用户控制的 HTML 内容在哪里结束?或者换句话说,如果没有在 DLL 中发布的 ascx 内容或没有 .compiled 文件,该站点如何工作?对于#1,它根据需要从 .ascx 中获取内容,但 #2 没有它可用。

编辑:该网站在我询问后立即变为只读,我意识到我的构建输出无效。我已经更新了这个问题,使其更加准确和彻底。

0 投票
1 回答
3132 浏览

c# - C# 类库中的用户控件(asp.net、ascx-files),构建错误(aspnet_compiler.exe)

从 ASPNET_Compiler.exe “传递”此错误时遇到问题:

错误 CS0103:当前上下文中不存在名称“TestMath”。

从用户控件 (.cs) 文件在 TestMath 中调用的函数位于上下文之外(范围/命名空间/...)。如果我注释掉调用 TestMath 中的方法的行,则编译工作,我的用户控件也是如此(从 WebApplication 中引用 DLL)。

“TestMath”类是一个静态类,它包含一个静态方法“Get”,它返回-1+3(我也尝试过创建它非静态的......没有运气)。

Visual Studio (MSBuild) 中的正常构建工作,但众所周知;它不会正确地将 .ascx 文件打包到 DLL 中。

我附上了一个.rar,其中包含:

  1. 测试库

包含 1 个 .ascx 控件和 1 个数学类

包含一个运行“BuildAssembly.cmd”的构建后事件,该事件又运行 aspnet_compiler 和 aspnet_merge。

  1. 网站 - 一个 .aspx 页面,用于显示库中的控件。

给出错误的行位于 Label.ascx.cs 的第 18 行:

有什么建议吗?猜一下?禁止在 .ascx.cs 之外的类中调用方法?哦……但是这些话是有道理的!意思是说; 如果我在 User-Control 类中复制数学类,如下所示:

该解决方案确实可以编译,我可以在两个类中调用方法......但是,正如我们所愿;我也不例外:我也希望能够调用其他对象(我已经这样做了,它们只是生活在 GAC 中......)......所以,嗯......基本上;aspnet_compiler 在哪里寻找 dll 的...

下载示例解决方案: http ://s000.tinyupload.com/?file_id=76690332418132532036

如果您将解决方案解压缩到 C:\Solutions\Test,则可以毫不费力地运行它,前提是 Visual Studio 2010、Windows 7....NET 框架 4 或更高版本。

否则,这里有一些代码:ASCX

背后的 ASCX 代码

测试数学

BuildAssembly.cmd

想知道为什么 2015 年 ASCX 出现了这么多“模糊”?哦,希望重用几年前创建的 ascx 文件,将它们打包在一个库中以备不时之需,签署程序集,将其导入我的 SharePoint 环境......

0 投票
0 回答
32 浏览

asp.net - .NET webservice pdb 部署仍然没有行号

如果有人可以帮助这个,我将不胜感激,我已经搜索并建造了一段时间。

  1. 网站项目
  2. 使用 CCNET 构建
  3. 使用 msbuild 和 config DebugType=pdbonly 构建
  4. 使用 aspnet_merge 和 -a -debug 将所有文件合并到单个程序集中
  5. pdb 与 .dll 位于同一目录中
  6. web.config 中的 debug=true
  7. 没有冒名顶替
  8. 框架 4.0(仍然检查,没有参考部署)
  9. 通过 ex.ToString() 捕获

示例堆栈跟踪

System.InvalidCastException:从“DBNull”类型到“Integer”类型的转换无效。在 Microsoft.VisualBasic.CompilerServices.Conversions.ToInteger(对象值) 在 UserControls_OpportunityManagement.GetReferralMethodIDByDialedNbr(字符串 DialedNumber)

0 投票
2 回答
660 浏览

visual-studio-2015 - 使用 MSBuild 2015 的 AspNetMerge 任务

我正在迁移 Visual Studio 2010 中的一个项目以使用更新的 2015 工具,但不知道如何解决这个问题。

在安装了 Visual Studio 2015 的新构建代理上通过 TeamCity 构建期间,出现以下错误:

错误 MSB4062:无法从程序集 C:\Program Files (x86)\MSBuild\Microsoft\WebDeployment\v10.0\Microsoft.WebDeployment.Tasks.dll 加载“Microsoft.WebDeployment.Tasks.AspNetMerge”任务。无法加载文件或程序集 'file:///C:\Program Files (x86)\MSBuild\Microsoft\WebDeployment\v10.0\Microsoft.WebDeployment.Tasks.dll' 或其依赖项之一。该系统找不到指定的文件。确认声明正确,程序集及其所有依赖项都可用,并且任务包含实现 Microsoft.Build.Framework.ITask 的公共类。

有问题的程序集在构建的 .proj 文件中作为任务引用:

现在考虑到这些路径中的版本号是 v10.0,我认为它仍然引用了一个旧工具。问题是在新工具中 Microsoft.WebDeployment.Tasks.dll 不再存在。

谁能告诉我为了在新工具中执行 aspnet_merge 步骤,我需要在我的 MSBuild 项目中引用什么新程序集?有没有更好的办法?

提前致谢!

0 投票
0 回答
103 浏览

asp.net - 在没有安装 Visual Studio 的构建机器上安装 aspnet_merge.exe

新的 aspnet_merge 5.00 beta 只能从 nugget 安装。要安装在没有 Visual Studio 的构建机器上,我想直接使用 nugget.exe 来获取包。

任何人都知道我是否可以替换 Windows SDK 中的 .EXE 吗?我问是因为在 SDK 中只有 .exe,但测试版附带了更多我不确定的支持文件。

0 投票
1 回答
1257 浏览

c# - aspnet_merge(0,0):发生错误:合并程序集时发生错误:不允许未解析的程序集引用:[Custom.Assembly]

我是 Stack Overflow 的潜伏者,这是我的第一个问题,所以请放轻松。

我开发自定义电子商务 ASP.NET Web 窗体应用程序,并在发布期间将所有输出合并到一个程序集。

我一直在网上搜索,试图在发布期间解决以下错误:

这从来都不是我们任何其他项目的问题,我完全被难住了。

我试过了:

  • 从我们的 repo 中检查一个干净的项目
  • 删除而不是重新引用 bin 文件夹中的所有 .dll
  • 使用不同版本的 aspnet_merge
  • 切换目标框架(.NET 4.5、4.5.1、4.5.2)
  • 关闭计算机,然后重新打开
  • 睡在上面

有问题的 .dll 在我们所有的其他项目中都使用过,以前没有引起过这个问题。

提前致谢。

0 投票
1 回答
392 浏览

asp.net - 尝试将网站发布为单个 DLL 时来自 aspnet_merge 的 OutOfMemoryException

我认为这将是一件很容易解决的事情,但是在尝试了我在 Google 上找到的几种解决方案之后(清除系统的临时文件,通过 64 位 IIS Express 运行构建,并在发布模式下构建而不是调试),我' m 仍然收到以下错误: 在此处输入图像描述

正在运行的命令:

通过使用以下预编译设置运行发布到 zip 时出现此错误: 预编译设置

需要注意的几点:

  • 网站不是 Web 应用程序!
  • 该网站有超过9100个文件
  • 运行.Net 4.5
  • 尝试在具有 16GB RAM 的 Windows 7 Professional 64 位机器上构建
  • 我尝试构建单个 DLL 的唯一原因是因为我需要对包的输出进行版本控制。我发现我可以使用 AssemblyInfo.vb 文件对 App_Code 进行版本控制,但我可以对所有其他 DLL 进行版本控制(默认不合并发布为每个页面生成 DLL)的唯一方法是在每个页面中添加一个版本指令,这也是超过 1000 页需要维护。
0 投票
1 回答
52 浏览

visual-studio-2010 - aspnet_merge 单个程序集不使用最新的 DLL 代码

我有一个在 VS2010 中创建的网站,我使用 aspnet_merge 将其合并到一个程序集中。我最近对其中一个已编译的 ascx 页面进行了小改动,但合并后的单个程序集并未反映该更改。

为了进一步测试,我手动打开了合并前的 ascx 页面 DLL 程序集,以检查发布后更改是否存在,并且存在。在编译之前,我先构建然后发布站点;我检查过的唯一选项是“使用固定命名和单页程序集”。合并后(使用 v7.0A 从命令行完成,未指定选项),合并程序集的创建没有意外,但不存在更改。

似乎合并正在使用网站的一些缓存版本,而不是最新更新 - 所以我删除了所有临时文件,但没有运气。合并的 DLL 可能缺少最新的代码更改是否还有其他原因?

0 投票
1 回答
243 浏览

visual-studio - Visual Studio - 发布时出现 aspnet_merge.exe 错误

我在 VS 2015、2017 和 2019 上遇到过这个问题,所以我相信这不是我的设置所特有的。

aspnet_merge(0,0): Error occurred: An error occurred when merging assemblies: Object reference not set to an instance of an object

这发生在以下运行之后:

C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\aspnet_merge.exe (project location)\TempPackageBuildDir\obj\Debug\AspnetCompileMerge\TempBuildDir -o (name of assembly) -copyattrs (repository location)\..\..\TempPackageBuildDir\obj\Debug\AssemblyInfo\AssemblyInfo.dll -a -debug

我可以在另一台机器上运行这个完全相同的命令,它运行没有问题。我之前已经能够通过在 website.publishproj 中明确设置我的输出目录来解决这个 ONCE

但是几天后问题又来了。我的机器上专门缓存了一些不好的东西,我没有足够的知识知道它是什么。

任何见解将不胜感激,