我正在尝试在没有在机器上安装 Visual Studio 或 MVC 4 的情况下在测试服务器上构建 MVC 解决方案。
该解决方案将所有必需的 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 的服务器上构建的。
赛斯