2016-09-30 21 views
0

我正在设置一个后期构建事件,将由Visual Studio编译的DLL复制到我的Unity项目中,但我无法让它在目标路径中使用产品名称。我的命令如下所示:如何在Visual Studio后期构建事件中获取产品名称?

cd $(ProjectDir) 
echo F|xcopy /Y "bin\release\$(AssemblyName).dll" "..\..\..\Assets\Plugins\$(ProductName)\$(AssemblyName).dll" 

但是,这会将文件放在Plugins目录中。

对于某些项目,我可以使用$(RootNamespace),但如果我想在文件夹名称中使用空格,则不起作用。

我知道我可以只为每个项目手动输入产品名称,但有没有办法让Visual Studio自动执行,就像使用程序集名称一样?

+0

为什么将文件放在Plugins目录中?你的情况是$(ProductName)?我找不到名为“ProductName”的marco。 – zwcloud

+0

$(ProductName)在我的情况下是没有的,因为它不作为宏存在(这是问题)。路径变成..... Plugins \\ $(AssemblyName).....所以文件进入插件。 – SilentSin

回答

0

对于C/C++项目,

使用the Property Manager(在菜单栏:查看/其他的Windows /物业经理)来管理你的项目的性质。

您可以在新的属性表中定义像$(ProjectName)这样的自定义marco。并在您的项目中共享属性表。然后,您可以在每个项目的后期制作活动中使用marco。

对于C#项目,

使用the Property Functions

In Visual Studio 2012 (C#) How to Create Custom Macros available in Post Build

MSBuild: Permanently Change PropertyGroup Property of a Project

顺便说一句,你可以use the environment variables,如果它是对你有好处。

+0

属性管理器为空,并显示“未加载Visual C++项目”。我使用C#顺便说一句。 – SilentSin

+0

这东西看起来像它可能做我想做的事情,所以我会标记你的答案是正确的,但我不会使用它,因为要花费更长的时间来弄清楚如何得到我需要的东西,而不仅仅是放在我想为每个项目手动创建路径。 – SilentSin

相关问题