Msbuild 从目标文件中删除$(平台)
我有一个在部署时复制propper配置文件的代码:Msbuild 从目标文件中删除$(平台),msbuild,Msbuild,我有一个在部署时复制propper配置文件的代码: <PropertyGroup> <CopyAllFilesToSingleFolderForPackageDependsOn> CopyConfigFiles; $(CopyAllFilesToSingleFolderForPackageDependsOn); </CopyAllFilesToSingleFolderForPackageDependsOn>
<PropertyGroup>
<CopyAllFilesToSingleFolderForPackageDependsOn>
CopyConfigFiles;
$(CopyAllFilesToSingleFolderForPackageDependsOn);
</CopyAllFilesToSingleFolderForPackageDependsOn>
</PropertyGroup>
<Target Name="CopyConfigFiles">
<ItemGroup>
<_ConfigFiles Include="Configurations\*.$(Platform).config" />
<FilesForPackagingFromProject Include="%(_ConfigFiles.Identity)">
<DestinationRelativePath>%(Filename)%(Extension)</DestinationRelativePath>
</FilesForPackagingFromProject>
</ItemGroup>
</Target>
复制配置文件;
$(将所有文件复制到SingleFolderForpPackageDependson);
%(文件名)%(扩展名)
是否可以从结果文件中删除$(平台)
即
- $(平台)=生产
- 来源:connectionString.Production.config
- 目标:connectionString.config
- 网页。制作.config
- web.登台.config
- web.调试.config 但是,预构建步骤用于选择其中一个文件并覆盖现有的web.config文件,因此在执行/部署/打包时,系统将处理正确的特定于环境的配置文件,名为web.config
Scott Hanselman很好地描述了这种方法。在我看来,最好的方法是“配置转换”。它们非常容易学习,非常强大,您只需要覆盖web.config中针对特定平台正在更改的部分,并且它们与Visual Studio捆绑在一起。 看看这个博客
我希望这会有所帮助。不,即使设置为空,文件名中也会有一个双精度
,它会断开。$(平台)
应该在
前面加前缀或附加前缀,然后它就可以变为空。@leppie,它是一个文件。因此它总是可以重命名。msbuild有复制和删除任务来进行重命名