0

我有一个非托管 C++ 项目,我需要将其输出复制到 .NET 项目的输出文件夹中。

Visual Studio 2010 不允许我将 C++ 项目添加为项目引用,因为它没有创建托管程序集。

我尝试手动将以下内容添加到 .csproj 文件中,但它似乎不起作用(例如,在运行 msbuild 时,首先构建 .NET 项目)

<ItemGroup>
    <ProjectReference Include="pathtoproject\unmanaged.vcxproj">
        <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
        <Private>False</Private>
    </ProjectReference>
</ItemGroup>

如何强制此构建依赖项与命令行构建一起使用?

4

3 回答 3

2

所以事实证明我在问题中给出的例子实际上是正确的。这将导致 C++ 项目首先构建。

我的问题是我试图连接到 .NET 项目中的 MSBuild 目标,然后复制 C++ dll,而我在该项目的构建周期中这样做得太早了(我正在连接到 BeforeBuild)。使用“BeforeCompile”目标似乎在​​构建周期中已经足够晚了,它可以正常工作。

于 2013-02-05T04:03:24.747 回答
1

将这两个项目添加到解决方案并使用项目依赖项确保首先构建非托管项目。您可以从命令行构建解决方案。

项目依赖对话框

于 2013-02-05T03:28:33.893 回答
0

我相信您的问题可能已在此线程中得到解答:

如何添加对由 C# 项目调用的非托管 C++ 项目的引用?

看看 SLaks 的回答

于 2013-02-05T03:32:55.943 回答