我想使用SharpDX库,我必须自己编译源代码。 我可以使用Net40配置轻松地从他们的GitHub编译最新的源代码。 现在我想用编译后的项目在我自己的项目,我发现下面这样做: https://github.com/sharpdx/SharpDX/issues/379使用从源代码编译的SharpDX?
这导致我做以下步骤:
- 下载并解压SharpDX源代码为“./SharpDX”
- 打开文件“./SharpDX/SharpDX.sln”
- 建立在配置管理与配置Net40的SharpDX源代码
与以下内容创建文件 “./MyProject/Common.targets”:
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <PropertyGroup> <!-- set the location of SharpDX source code --> <SharpDXLocation Condition="'$(SharpDXLocation)' == ''">..\SharpDX</SharpDXLocation> <!-- the new property to include references automatically (as it was in old SharpDX.targets) --> <SharpDXIncludeReferences>true</SharpDXIncludeReferences> <!-- (optional) override DirectX version --> <SharpDXDirectXVersion>DirectX11</SharpDXDirectXVersion> <!-- disable usage of signed assemblies, as you won't have the needed private key to build them --> <SharpDXNoSigned>true</SharpDXNoSigned> </PropertyGroup> <Import Project="$(SharpDXLocation)\Build\SharpDX.targets" /> <Import Project="$(SharpDXLocation)\Build\SharpDX.Toolkit.targets" /> </Project>
与以下内容创建文件 “./MyProject/SharpDXHelper.csproj”:
<?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="BuildTarget"> <Import Project="Common.targets" /> <Target Name="BuildTarget"> <Message Text="Building command for SharpDXHelper" Importance="high" /> </Target> <Target Name="Rebuild"> <Message Text="Rebuilding command for SharpDXHelper" Importance="high" /> </Target> <Target Name="Clean"> <Message Text="Cleaning command for SharpDXHelper" Importance="high" /> </Target> </Project>
- 打开文件“.MyProject/SharpDXHelper.csproj”与Visual Studio。
如果我展开“参考”的“./MyProject/SharpDXHelper.csproj”的一部分,我看到一个警告图标所需的参照,该警告是这样的:
警告13找不到引用的组件'SharpDX'。 SharpDXHelper
我不明白我做错了什么,为什么它没有找到正确的组件? 我意识到“Toolkit”部分已经消失,我期望那些加载失败,但我不希望其他人失败。
据我的理解,如果我将SharpDXHelper.csproj作为依赖添加到其他任何项目中,我应该能够毫无问题地使用SharpDX库,我对这个问题正确吗?
所产生的问题的图像可以在这里找到: http://puu.sh/dfmP4/c6ac1165ed.png
我接受了您的建议,并将添加到了现有的项目文件中,并且违背了我的预期,它实际上起作用了。当然,如果没有Toolkit API,应该可能会在某个时候更新。无可否认,我添加了导入的项目文件是为了与NuGet(我拿出的)一起工作而设计的,所以这可能有助于解决这个问题。当我再次醒来时,我将看到_why_它与该项目文件一起工作,而不是与我所做的那个一起工作。 –
ManIkWeet
2014-12-03 22:24:36