Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在没有Visual Studio的情况下构建Windows应用商店8.1应用程序?_C#_Visual Studio_Msbuild_Windows Store Apps - Fatal编程技术网

C# 如何在没有Visual Studio的情况下构建Windows应用商店8.1应用程序?

C# 如何在没有Visual Studio的情况下构建Windows应用商店8.1应用程序?,c#,visual-studio,msbuild,windows-store-apps,C#,Visual Studio,Msbuild,Windows Store Apps,我需要这个用于构建服务器-我希望避免在那里安装完整的Visual Studio 我使用最新的v12 MSBuild来构建应用程序的解决方案。安装.NET Framework 4.5.1和Windows 8.1 SDK使我经历了几个编译错误。安装了所有这些设备后,现在我得到了以下信息: 错误MSB4019:导入的项目“C:\Program Files” (x86)\MSBuild\Microsoft\WindowsXaml\v12.0\Microsoft.Windows.UI.Xaml.CShar

我需要这个用于构建服务器-我希望避免在那里安装完整的Visual Studio

我使用最新的v12 MSBuild来构建应用程序的解决方案。安装.NET Framework 4.5.1和Windows 8.1 SDK使我经历了几个编译错误。安装了所有这些设备后,现在我得到了以下信息:

错误MSB4019:导入的项目“C:\Program Files” (x86)\MSBuild\Microsoft\WindowsXaml\v12.0\Microsoft.Windows.UI.Xaml.CSharp.targets” 找不到。确认声明中的路径为 正确,并且该文件存在于磁盘上

目标文件存在于安装了Visual Studio 2013的开发机器上,因此我猜它是通过VS 2013实现的。当我尝试将整个文件夹粘贴到构建机时(我知道,这是一件愚蠢的事情),我得到了以下编译警告和错误:

警告MSB3644:框架的引用程序集无效 找不到“.NETCore,Version=v4.5.1”。要解决此问题,请安装 此框架版本的SDK或目标包,或重新定位 应用程序到具有SDK的框架版本 或安装了目标包

XamlCompiler错误WMC1006:无法 解析程序集或Windows元数据文件“System.Runtime.dll”

Xaml内部错误WMC9999:类型宇宙无法解析程序集: System.Runtime,版本=4.0.0.0,区域性=neutral, PublicKeyToken=b03f5f7f11d50a3a

显然,复制和粘贴东西不是一种可行的方法。有没有合适的方法来实现我想要的

编辑:生成计算机已安装Windows Server 2012,而不是Windows 8.1。这可能是个问题吗

编辑2:在比较开发计算机和生成服务器上执行的MSBuild的输出后,我注意到生成计算机中缺少文件夹
C:\Program Files(x86)\Reference Assembly\Microsoft\Framework\.NETCore\v4.5.1
(只有4.5文件夹)。粘贴后,出现以下错误:

CompileXML错误WMC9998:XBF生成失败,原因是缺少 Windows 8.1支持,设置属性 在项目文件中为true 然后再试一次


Windows 8.1工具链中仍然缺少一些东西…

我几周前刚刚为Windows 8应用商店应用程序做了这项工作,因此Windows 8.1也应该如此。只要生成计算机运行的是Windows 8.1,您所需要做的就是在生成计算机上安装最新的Visual Studio Express for Windows应用商店应用程序,您就可以了。它应该安装您需要的所有内容。

您下载并安装到构建服务器上了吗?MsBuild的v12版本现在作为Visual Studio(而不是Microsoft.NET Framework)的一部分发布,您希望使用此单独安装在生成服务器上获取MsBuild v12位。

因为它是windows应用商店应用,而windows server 2012没有应用商店,我想说,编译应用程序所需的库只是操作系统本身缺少。我建议在Windows8.1上运行tracer,查看编译期间访问了哪些文件,并将它们复制到服务器。我不确定这是否可行,但这是我能想到的最有可能的情况。您可以使用类似Process Monitor的工具来实现此目的 或者,您可能希望监视.net中的临时生成文件夹,以查看在生成过程中本地复制了哪些程序集


编辑:微软官方不支持这个

事实上,构建机器是Windows Server 2012(我编辑了这个问题以包含这个)。我意识到安装VS可能会使其正常工作,但我想明确知道没有VS是否可行。我假设您不想在构建服务器上浪费VS许可证,这就是我的情况。理论上,你应该能够复制所有内容,因为安装程序就是这么做的。我已经尝试过了,不可能将VS Express for Store应用程序安装到Windows Server 2012。它说我需要一个更新版本的操作系统-根据,它只兼容Win8.1。关于复制,我不确定我还应该复制什么-正如我在OP中提到的,我已经复制了包含目标文件的文件夹,这是不够的。是的,我复制了。正如我在问题中提到的,我安装了MSBuild v12和Windows 8.1 SDK。为什么会有这么多反对票?请与我们分享您的想法,让我们知道我可以如何进一步改进这个问题?首先,Windows Server 2012 R2相当于Windows 8.1。确保您已升级到R2。@NateDiamond您是对的,这台机器实际上只安装了2012,而不是2012R2。我会尽快升级它。在R2上为我工作,安装了vs express和sdk。我将保留ProcMon的想法作为最后手段,我真的希望避免经历成千上万的事件。至于缺乏微软的官方支持,是什么让你相信是这样的呢?从该MSDN链接中,我能找到的最接近的是“此外,Windows Server 2012没有开发者许可证,因此您无法在该操作系统上开发Windows应用商店应用程序。”。但我相信这只是实际开发应用程序(比如执行和调试它们),而不是编译——编译应用程序不需要开发许可证。对这篇文章,这是第一件让我得出结论,编译器依赖于操作系统本身中的库。他们也不支持在Windows7上编译这些应用程序,这意味着他们需要一些开发工具中没有的东西。根据您的授权/使用情况,除了手动复制编译器引用的所有DLL之外,如果安装Hyper-V角色,最好的替代方法是在VM中运行windows 8。如果您至少有Windows 2012标准,则其许可证应允许在同一许可证上运行。最后,值得尝试使用Windows 8.1 box/Visual Studio 2013编译一次应用程序,将所有引用的库设置为