0

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

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

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

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

更新:好的。也许我需要强制 msbuild 更新引用。怎么做?我发现了一些可以在 msbuild 操作中更改的属性。在打电话ResolveAssemblyReferencesDependsOn时,我试图把value = true. 没有帮助。有任何想法吗?

4

3 回答 3

2

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

于 2018-10-11T14:02:58.393 回答
1

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

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

于 2010-10-17T23:24:20.517 回答
0

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

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

于 2013-03-20T15:31:33.537 回答