Msbuild 如何在发行版中包含*.min.*,在调试版本中包含*.min.*,并保留父文件夹?

Msbuild 如何在发行版中包含*.min.*,在调试版本中包含*.min.*,并保留父文件夹?,msbuild,winjs,Msbuild,Winjs,我想在我的项目中包括WinJS源代码。它附带了*.js和*.css文件的缩小版本。为了节省空间,我只想包括带有发行版配置的小型版本 这就是我到目前为止的想法: <Content Include="WinJS\css\*.css;WinJS\js\*.js" Condition="$(Configuration) == 'Debug'"> <Link>WinJS\%(RecursiveDir)%(FileName)%(Extension)</Link> &l

我想在我的项目中包括WinJS源代码。它附带了*.js和*.css文件的缩小版本。为了节省空间,我只想包括带有发行版配置的小型版本

这就是我到目前为止的想法:

<Content Include="WinJS\css\*.css;WinJS\js\*.js" Condition="$(Configuration) == 'Debug'">
  <Link>WinJS\%(RecursiveDir)%(FileName)%(Extension)</Link>
</Content>
<Content Include="WinJS\css\*.min.css;WinJS\js\*.min.js" Condition="$(Configuration) == 'Release'">
  <Link>WinJS\%(RecursiveDir)%(FileName)%(Extension)</Link>
</Content>
来自发布配置中的.min版本或调试配置中的非精简版本


也许可以结合Include和Exclude做一些聪明的事情?

%RecursiveDir项元数据仅在您使用wildchar**时可用。 见文件

我不打算使用WinJS,但如果在需要引用js和css文件的地方使用链接元数据,这可能是您的解决方案:

<Content Include="WinJS\**\*.css;WinJS\**\*.js" Exclude="WinJS\**\*.min.css;WinJS\**\*.min.js" Condition="$(Configuration) == 'Debug'" >
  <Link>WinJS\%(RecursiveDir)%(FileName)%(Extension)</Link>
</Content>
<Content Include="WinJS\**\*.min.css;WinJS\**\*.min.js" Condition="$(Configuration) == 'Release'">
  <Link>WinJS\%(RecursiveDir)$([System.String]::Copy("(Filename)").Replace(".min",""))%(Extension)</Link>
</Content>
当用真正的双引号替换时,它是有效的。谢谢
<Content Include="WinJS\**\*.css;WinJS\**\*.js" Exclude="WinJS\**\*.min.css;WinJS\**\*.min.js" Condition="$(Configuration) == 'Debug'" >
  <Link>WinJS\%(RecursiveDir)%(FileName)%(Extension)</Link>
</Content>
<Content Include="WinJS\**\*.min.css;WinJS\**\*.min.js" Condition="$(Configuration) == 'Release'">
  <Link>WinJS\%(RecursiveDir)$([System.String]::Copy("(Filename)").Replace(".min",""))%(Extension)</Link>
</Content>