如何更新网站中的装配程序集引用?

时间:2010-10-15 17:43:49

标签: visual-studio msbuild finalbuilder

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

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

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

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

UPD:好的。也许我需要强制msbuild更新引用。怎么做? 我找到了一些我可以在msbuild动作中更改的属性。 在名为'ResolveAssemblyReferencesDependsOn'时,我试图将value = true。没有帮助。 有什么想法吗?

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

您是否尝试过使用“Build VS.NET Solution”或“MSBuild Project”操作?如果将引用设置为正确的位置,则两者都应解析程序集引用。这要求您至少拥有一个项目文件。

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

答案 2 :(得分:0)

我不是100%确定我理解这个问题,但我相信您需要能够自动更正装配参考上的某些路径。

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