用winforms做xna。
从这个link获取代码以及程序员 Microsoft 的代码,其中包含一个包含三个项目的解决方案,表单项目,Content和ContentLibrary项目。
ContentLibrary项目构建了一个表单项目引用的dll(但它似乎没有任何东西,我不知道为什么)。
它以一种我从未见过的古怪方式引用内容项目
内容项目包含一个图片文件,没有别的,我不知道它构建了什么
最后是包含主要表单的表单项目,其中包含许多控件,包括用户定义的控件,一个继承xna控件的抽象,以及实现此控件的其他控件(这些将执行绘图)。
无法打开ContentLibrary项目 我收到的错误消息: C:\ Program Files(x86)\ MSBuild \ Microsoft \ XNA Game Studio \ Microsoft.Xna.GameStudio.targets未找到确认声明中的路径是否正确且文件存在于磁盘上
用记事本打开ContentLibrary项目文件(.csproj one),这是我发现的:
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ProjectGuid>{396ADBE6-FB16-4DBA-8C70-C16A46B448EA}</ProjectGuid>
<ProjectTypeGuids>{6D335F3A-9D43-41b4-9D22-F6F17C4BE596};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} </ProjectTypeGuids>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>ContentLibrary</RootNamespace>
<AssemblyName>ContentLibrary</AssemblyName>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<TargetFrameworkProfile>Client</TargetFrameworkProfile>
<XnaFrameworkVersion>v4.0</XnaFrameworkVersion>
<XnaPlatform>Windows</XnaPlatform>
<XnaProfile>Reach</XnaProfile>
<XnaCrossPlatformGroupID>e0c073d9-a61b-474a-bda0-a8ada2c89669</XnaCrossPlatformGroupID>
<XnaOutputType>Library</XnaOutputType>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\x86\Debug</OutputPath>
<DefineConstants>DEBUG;TRACE;WINDOWS</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<NoStdLib>true</NoStdLib>
<UseVSHostingProcess>false</UseVSHostingProcess>
<PlatformTarget>x86</PlatformTarget>
<XnaCompressContent>false</XnaCompressContent>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\x86\Release</OutputPath>
<DefineConstants>TRACE;WINDOWS</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<NoStdLib>true</NoStdLib>
<UseVSHostingProcess>false</UseVSHostingProcess>
<PlatformTarget>x86</PlatformTarget>
<XnaCompressContent>true</XnaCompressContent>
</PropertyGroup>
<ItemGroup>
<Reference Include="Microsoft.Xna.Framework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=842cf8be1de50553, processorArchitecture=x86">
<Private>False</Private>
</Reference>
<Reference Include="Microsoft.Xna.Framework.Game, Version=4.0.0.0, Culture=neutral, PublicKeyToken=842cf8be1de50553, processorArchitecture=x86">
<Private>False</Private>
</Reference>
<Reference Include="Microsoft.Xna.Framework.Graphics, Version=4.0.0.0, Culture=neutral, PublicKeyToken=842cf8be1de50553, processorArchitecture=x86">
<Private>False</Private>
</Reference>
<Reference Include="Microsoft.Xna.Framework.GamerServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=842cf8be1de50553, processorArchitecture=x86">
<Private>False</Private>
</Reference>
<Reference Include="Microsoft.Xna.Framework.Xact, Version=4.0.0.0, Culture=neutral, PublicKeyToken=842cf8be1de50553, processorArchitecture=x86">
<Private>False</Private>
</Reference>
<Reference Include="Microsoft.Xna.Framework.Video, Version=4.0.0.0, Culture=neutral, PublicKeyToken=842cf8be1de50553, processorArchitecture=x86">
<Private>False</Private>
</Reference>
<Reference Include="Microsoft.Xna.Framework.Avatar, Version=4.0.0.0, Culture=neutral, PublicKeyToken=842cf8be1de50553, processorArchitecture=x86">
<Private>False</Private>
</Reference>
<Reference Include="Microsoft.Xna.Framework.Net, Version=4.0.0.0, Culture=neutral, PublicKeyToken=842cf8be1de50553, processorArchitecture=x86">
<Private>False</Private>
</Reference>
<Reference Include="Microsoft.Xna.Framework.Storage, Version=4.0.0.0, Culture=neutral, PublicKeyToken=842cf8be1de50553, processorArchitecture=x86">
<Private>False</Private>
</Reference>
<Reference Include="mscorlib">
<Private>False</Private>
</Reference>
<Reference Include="System">
<Private>False</Private>
</Reference>
<Reference Include="System.Xml">
<Private>False</Private>
</Reference>
<Reference Include="System.Core">
<RequiredTargetFramework>4.0</RequiredTargetFramework>
<Private>False</Private>
</Reference>
<Reference Include="System.Xml.Linq">
<RequiredTargetFramework>4.0</RequiredTargetFramework>
<Private>False</Private>
</Reference>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Content\Content.contentproj">
<Project>{618DED89-9BA8-44D7-83A0-163041666FAC}</Project>
<Name>Content</Name>
<XnaReferenceType>Content</XnaReferenceType>
</ProjectReference>
</ItemGroup>
<ItemGroup />
<ItemGroup>
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<Import Project="$(MSBuildExtensionsPath)\Microsoft\XNA Game Studio\Microsoft.Xna.GameStudio.targets" />
<!--
To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>
如果需要,我正在运行Windows 8 x64。
答案 0 :(得分:3)
我在这里找到了一个解决方案: https://bitbucket.org/rbwhitaker/xna-beyond-vs-2010/downloads
给出的链接包含一个由PowerShell启动的脚本文件(类似于命令提示符)。如果您运行Windows 7或更高版本,则使用PowerShell,如果不使用此链接:
http://www.microsoft.com/en-us/download/details.aspx?id=40855
准备好后,请按照以下步骤操作:
Set-ExecutionPolicy Unrestricted
。这是因为PowerShell默认情况下不会激活脚本文件以保护您的计算机,您可以在完成后通过键入以下内容将其更改回来:Set-ExecutionPolicy Restricted
.\XnaFor2013.ps1
如果您想知道此脚本的作用,请向下滚动到本页末尾:
http://rbwhitaker.wikidot.com/setting-up-xna
摘录以防止链接腐烂:
首先,它从Microsoft下载XNA安装程序。
事实证明,XNA安装程序只是一个自解压存档 其中包含大约七个其他安装程序。接下来就是了 脚本确实解压了那些“内部”安装程序。
七个中的六个完全按照你想要的方式做,开箱即用, 所以脚本依次运行它们。
另一个是将文件放在正确位置的安装程序 视觉工作室。不幸的是,它正在寻找Visual Studio 2010, 虽然你有一个较新的版本(2012年或2013年都使用 脚本)。所以脚本告诉这个安装程序只是放置文件 一个临时的位置。
这些文件是为Visual Studio 2010构建的,需要进行一些更改, 所以脚本进行更改并将它们放在适当的位置 您的Visual Studio版本的位置。 (事实上,它适用于所有人 您安装的Visual Studio版本,无论是否 它是2012年或2013年,无论是付费版还是快递版 对于Windows桌面。)
不幸的是,Visual Studio不会自动检查新内容 加载项。 (实际上,这是一件好事,因为它需要太长时间 一直检查,但在这种情况下,它是坏的,因为我们需要它 检查。)为了检查新的插件,脚本删除了 扩展缓存并让Visual Studio重建它。重建缓存 占用脚本运行的大部分时间。 (几分钟。)
一旦重建,一切准备就绪,脚本将被删除 它创建的临时文件。