【问题标题】:How to update assembly assembly references in a web site?如何更新网站中的程序集程序集引用?
【发布时间】:2020-01-14 08:56:21
【问题描述】:

我正在使用 FinalBuilder Pro 7 进行构建。

我有一个 ASP.NET 网站,我正在尝试使用 FinalBuilder 的“预编译 Asp.net 2.0 应用程序”操作。好吧,它失败了。

要成功构建它,我需要运行 Visual Studio,打开网站并在 VS 中手动构建它或手动更新所有引用。之后它就可以工作了。

现在的问题是:如何强制 FinalBuilder 更新这些引用?即使我创建了与该网站关联的 Web 部署项目并尝试使用 msbuild 操作构建它,它也会因同样的原因而失败。不知何故,这两个动作都不会自动更新引用。

更新:好的。也许我需要强制 msbuild 更新引用。怎么做? 我发现了一些可以在 msbuild 操作中更改的属性。 在调用ResolveAssemblyReferencesDependsOn 时,我尝试输入value = true。没有帮助。 有什么想法吗?

【问题讨论】:

  • 当您说“失败”时,您遇到的错误究竟是什么?
  • 它可以找到引用的程序集的 dll。但是如果我在 VS 中构建它就可以了,因为 VS 会更新引用。
  • 相关帖子 - Update DLL reference

标签: visual-studio msbuild finalbuilder


【解决方案1】:

.NET 中有不同类型的项目,如库项目、网站项目、Web API 项目等。正如您在问题中提到的,它是一个网站项目,所以我将为您提供网站项目的解决方案。 您可以通过两种方式构建项目。您可以通过 Visual Studio 构建,也可以使用 MS Build 构建。如果您使用 VS 构建项目,则可以通过在包管理器控制台中执行命令“Update-Package -reinstall”来更新依赖项的引用。它将自动重新安装所有软件包。 请注意,您的所有依赖项都列在 packages.config 文件中。 其次,如果您必须使用 cmd 提示符通过 MS Build 构建项目,要从 nuget 加载所有依赖项,则必须执行 nuget.exe。将加载所有依赖项,但它们的引用可能不会更新。所以在网站项目中你没有 .proj 文件。因此,您无法访问依赖项的引用。现在的问题是如何修改依赖项引用? 在网站项目中,程序集的引用存在于其 .refresh 文件中。因此,您必须修改该 .refresh 文件以更新网站项目中程序集的引用。

【讨论】:

    【解决方案2】:

    您是否尝试过使用“构建 VS.NET 解决方案”或“MSBuild 项目”操作?两者都应该解析您的程序集引用,前提是引用设置到正确的位置。这要求您至少有一个项目文件。

    据我了解,预编译操作(使用 MS aspnet_compile.exe - 请参阅 http://msdn.microsoft.com/en-us/library/ms229863(VS.80).aspx)旨在重新编译以前通过 VS 或 MSBuild 构建的 asp.net 应用程序。它要么进行就地编译以提高访问该站点的第一个用户的性能,要么创建可部署的应用程序(删除源代码等)。它并不是 VS/MSBuild 的替代品。

    【讨论】:

    • 它对我不起作用...您必须为此定义解决方案文件。但它只是一个网站的本地副本。因此,没有任何解决方案文件。当然,我可以创建一个。但后来我必须将它存储在存储库中......这是完全不同的故事......
    • 更新了我的答案 - 希望对您有所帮助
    【解决方案3】:

    我不是 100% 确定我理解这个问题,但我相信您需要能够自动更正程序集引用上的一些路径。

    我创建了一个项目来处理这个问题(以及其他一些事情):refswap.codeplex.com

    【讨论】:

      猜你喜欢
      • 2010-09-09
      • 1970-01-01
      • 2019-03-16
      • 1970-01-01
      • 2010-09-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多