gpt4 book ai didi

asp.net-mvc - 如何让 MSBuild 使用被引用为 nuget 包的 MVC 程序集来构建我的解决方案

转载 作者:行者123 更新时间:2023-12-01 11:39:09 26 4
gpt4 key购买 nike

我正在尝试获得一个 MVC 解决方案以在测试服务器上构建,而无需在机器上安装 visual studio 或 MVC 4。

该解决方案将所有必需的 MVC 程序集称为 nuget 包。在项目中,所有 MVC 程序集都标记为复制本地。当然,在我的开发机器上,解决方案在 visual studio 中构建得很好。

在构建机器上,我安装了 .net sdk,我正在尝试使用 MSBuild 来构建解决方案。所有 nuget 包都在源代码控制下,当我在服务器上执行 SVN 更新时,它会获取所有包。

当我运行构建时,我得到了一个损坏的 MVC DLL 引用。我不明白为什么会发生这种情况,因为在解决方案中引用了 DLL 并存在以供构建使用。

这是 MSBuild 返回的错误示例...

DataAnnotations\RunDataAnnotationsFromModelPropertyAttribute.cs(5,18): error CS0234: The type or namespace name 'Mvc' does not exist in the namespace 'System.Web' (are you missing an assembly reference?)
DataAnnotations\RunDataAnnotationsFromModelPropertyAttribute.cs(12,93): error CS0246: The type or namespace name 'IClientValidatable' could not be found (are you missing a using directive or an assembly reference?)
Security\MyAuthenticateAttribute.cs(6,18): error CS0234: The type or namespace name 'Mvc' does not exist in the namespace 'System.Web' (are you missing an assembly reference?)
Security\MyAuthenticateAttribute.cs(12,48): error CS0246: The type or namespace name 'AuthorizeAttribute' could not be found (are you missing a using directive or an assembly reference?)
Security\MyAuthorizeAttribute.cs(5,18): error CS0234: The type or namespace name 'Mvc' does not exist in the namespace 'System.Web' (are you missing an assembly reference?)
Security\MyAuthorizeAttribute.cs(13,45): error CS0246: The type or namespace name 'AuthorizeAttribute' could not be found (are you missing a using directive or an assembly reference?)
Web\Mvc\MyLoginController.cs(7,18): error CS0234: The type or namespace name 'Mvc' does not exist in the namespace 'System.Web' (are you missing an assembly reference?)
Web\Mvc\MyLoginController.cs(44,62): error CS0234: The type or namespace name 'Mvc' does not exist in the namespace 'System.Web' (are you missing an assembly reference?) ...

我在这上面花了好几个小时。令我沮丧的是,它是在我的机器上的 visual studio 中构建的,而不是使用 msbuild 在服务器上构建的。

赛斯

最佳答案

右键单击该项目并单击“卸载”,然后再次单击“编辑”。

找到 <Reference>对于 System.Web.Mvc .如果<HintPath>没有提到“包”目录(或丢失),那就是你的问题。只需删除包和所有引用并重新开始。

NuGet 包还原仅还原磁盘上的文件,它不会更新项目引用。

关于asp.net-mvc - 如何让 MSBuild 使用被引用为 nuget 包的 MVC 程序集来构建我的解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12753887/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com