我需要这个用于构建服务器 - 我想避免在那里安装完整的Visual Studio。
我使用最新的v12 MSBuild与应用程序一起构建解决方案。安装.NET Framework 4.5.1和Windows 8.1 SDK让我了解了几个编译错误。安装完所有,现在,我明白了:
错误MSB4019:导入的项目“C:\ Program Files (86)\的MSBuild \微软\ WindowsXaml \ V12.0 \ Microsoft.Windows.UI.Xaml.CSharp.targets” 没找到。确认声明中的路径是 正确,并且该文件存在于磁盘上。
目标文件出现在我安装了Visual Studio 2013的开发计算机上,所以我猜它是用VS 2013实现的。当我尝试将整个文件夹粘贴到构建机器上时(我知道) ,这是一个愚蠢的事情),我收到了以下编译警告和错误:
警告MSB3644:框架的参考程序集 未找到“.NETCore,Version = v4.5.1”。要解决此问题,请安装 适用于此框架版本的SDK或Targeting Pack,或重新定位您的 应用程序到您拥有SDK的框架版本 或安装了Targeting Pack。
XamlCompiler错误WMC1006:不能 解析程序集或Windows元数据文件'System.Runtime.dll'
Xaml内部错误错误WMC9999:类型Universe无法解析程序集: System.Runtime,Version = 4.0.0.0,Culture = neutral, 公钥= b03f5f7f11d50a3a。
显然,复制和粘贴东西不是一种方法。是否有一些适当的方法来实现我想要的目标?
编辑:构建计算机安装了Windows Server 2012,而不是Windows 8.1。这可能是个问题吗?
编辑2:在比较开发机器和构建服务器上执行的msbuild输出后,我注意到构建机器中缺少文件夹C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETCore\v4.5.1
(只有4.5夹)。粘贴后,我收到以下错误:
CompileXaml错误WMC9998:由于缺少XBF生成失败 Windows 8.1支持,设置属性 < DisableXbfGeneration>真< / DisableXbfGeneration>在您的项目文件中 然后再试一次。
Windows 8.1工具链中仍然缺少某些内容......
答案 0 :(得分:3)
由于它是一个Windows应用商店应用,并且Windows Server 2012没有应用商店,我会说为了编译应用所需的库只是从操作系统本身中丢失的。我建议在Windows 8.1框上运行跟踪器,以查看在编译期间访问哪些文件,并将它们复制到服务器。我不确定这会起作用,但这是我能想到的最有可能的情景。您可以使用Process Monitor之类的东西 See what files/registry keys are being accessed by application in Windows 或者,您可能希望监视.net中的临时构建文件夹,以查看在构建期间本地复制哪些程序集。
编辑:Microsoft未正式支持此http://msdn.microsoft.com/en-us/library/windows/apps/br211384.aspx答案 1 :(得分:2)
您是否在构建服务器上下载并安装了Microsoft Build Tools 2013? MsBuild的v12版本现在作为Visual Studio(而不是Microsoft.NET Framework)的一部分发布,并且您希望使用此单独安装来获取构建服务器上的MsBuild v12位。
答案 2 :(得分:-1)
几周前我刚刚为Windows 8商店应用做了这个,所以它应该与Windows 8.1相同。只要构建计算机运行的是Windows 8.1,您需要做的就是在构建计算机上安装最新的Visual Studio Express for Windows Store应用程序,您应该没问题。它应该安装你需要的一切。