Nuget 目标,如何将重命名的内容文件发送到解决方案输出文件夹?
Nuget targets, how to send a renamed content file to solution output folder?
我创建了一个带有默认 json 配置文件 'config.json.pp' 的 Nuget 包。安装时,它被转换并添加为内容; 'config.json'。我还在包的构建文件夹中添加了一个目标文件,它根据安装包的程序集根命名空间重命名配置文件:
<?xml version="1.0" encoding="utf-8" ?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<ConfigFile Include="config.json"/>
</ItemGroup>
<Target Name="CopyConfigFile" AfterTargets="Build;Rebuild">
<Copy SourceFiles="@(ConfigFile)" DestinationFiles ="@(ConfigFile->'$(OutDir)$(RootNameSpace)%(Extension)')" />
</Target>
</Project>
当在具有更多程序集的解决方案中构建程序集时,它不会添加到输出目录,只会添加到安装包的程序集的 bin\$(configuration) 文件夹中。
如何将文件添加到解决方案主应用程序的输出目录?
您可以使用 link 元数据来执行此操作:
<ItemGroup>
<Content Include="config.json"
Link="$(RootNameSpace)%(Extension)"
CopyToOutputDirectory="PreserveNewest"
Visible="False"
Condition="Exists('config.json')" />
</ItemGroup>
我创建了一个带有默认 json 配置文件 'config.json.pp' 的 Nuget 包。安装时,它被转换并添加为内容; 'config.json'。我还在包的构建文件夹中添加了一个目标文件,它根据安装包的程序集根命名空间重命名配置文件:
<?xml version="1.0" encoding="utf-8" ?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<ConfigFile Include="config.json"/>
</ItemGroup>
<Target Name="CopyConfigFile" AfterTargets="Build;Rebuild">
<Copy SourceFiles="@(ConfigFile)" DestinationFiles ="@(ConfigFile->'$(OutDir)$(RootNameSpace)%(Extension)')" />
</Target>
</Project>
当在具有更多程序集的解决方案中构建程序集时,它不会添加到输出目录,只会添加到安装包的程序集的 bin\$(configuration) 文件夹中。
如何将文件添加到解决方案主应用程序的输出目录?
您可以使用 link 元数据来执行此操作:
<ItemGroup>
<Content Include="config.json"
Link="$(RootNameSpace)%(Extension)"
CopyToOutputDirectory="PreserveNewest"
Visible="False"
Condition="Exists('config.json')" />
</ItemGroup>